You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@qpid.apache.org by sh...@apache.org on 2008/10/31 00:14:51 UTC
svn commit: r709283 - in /incubator/qpid/trunk/qpid/cpp/src/qpid/broker:
AclModule.h ConnectionHandler.cpp SemanticState.cpp
Author: shuston
Date: Thu Oct 30 16:14:51 2008
New Revision: 709283
URL: http://svn.apache.org/viewvc?rev=709283&view=rev
Log:
Adjust ACL-related enums to avoid Windows macro clashes; fixes QPID-1368
Modified:
incubator/qpid/trunk/qpid/cpp/src/qpid/broker/AclModule.h
incubator/qpid/trunk/qpid/cpp/src/qpid/broker/ConnectionHandler.cpp
incubator/qpid/trunk/qpid/cpp/src/qpid/broker/SemanticState.cpp
Modified: incubator/qpid/trunk/qpid/cpp/src/qpid/broker/AclModule.h
URL: http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/cpp/src/qpid/broker/AclModule.h?rev=709283&r1=709282&r2=709283&view=diff
==============================================================================
--- incubator/qpid/trunk/qpid/cpp/src/qpid/broker/AclModule.h (original)
+++ incubator/qpid/trunk/qpid/cpp/src/qpid/broker/AclModule.h Thu Oct 30 16:14:51 2008
@@ -33,11 +33,15 @@
namespace acl {
-enum ObjectType {QUEUE, EXCHANGE, BROKER, LINK, ROUTE, METHOD, OBJECTSIZE}; // OBJECTSIZE must be last in list
-enum Action {CONSUME, PUBLISH, CREATE, ACCESS, BIND, UNBIND, DELETE, PURGE,
- UPDATE, ACTIONSIZE}; // ACTIONSIZE must be last in list
-enum Property {NAME, DURABLE, OWNER, ROUTINGKEY, PASSIVE, AUTODELETE, EXCLUSIVE, TYPE, ALTERNATE,
- QUEUENAME, SCHEMAPACKAGE, SCHEMACLASS};
+enum ObjectType {OBJ_QUEUE, OBJ_EXCHANGE, OBJ_BROKER, OBJ_LINK, OBJ_ROUTE,
+ OBJ_METHOD, OBJECTSIZE}; // OBJECTSIZE must be last in list
+enum Action {ACT_CONSUME, ACT_PUBLISH, ACT_CREATE, ACT_ACCESS, ACT_BIND,
+ ACT_UNBIND, ACT_DELETE, ACT_PURGE, ACT_UPDATE,
+ ACTIONSIZE}; // ACTIONSIZE must be last in list
+enum Property {PROP_NAME, PROP_DURABLE, PROP_OWNER, PROP_ROUTINGKEY,
+ PROP_PASSIVE, PROP_AUTODELETE, PROP_EXCLUSIVE, PROP_TYPE,
+ PROP_ALTERNATE, PROP_QUEUENAME, PROP_SCHEMAPACKAGE,
+ PROP_SCHEMACLASS};
enum AclResult {ALLOW, ALLOWLOG, DENY, DENYLOG};
} // namespace acl
@@ -71,82 +75,82 @@
AclHelper(){}
public:
static inline ObjectType getObjectType(const std::string& str) {
- if (str.compare("queue") == 0) return QUEUE;
- if (str.compare("exchange") == 0) return EXCHANGE;
- if (str.compare("broker") == 0) return BROKER;
- if (str.compare("link") == 0) return LINK;
- if (str.compare("route") == 0) return ROUTE;
- if (str.compare("method") == 0) return METHOD;
+ if (str.compare("queue") == 0) return OBJ_QUEUE;
+ if (str.compare("exchange") == 0) return OBJ_EXCHANGE;
+ if (str.compare("broker") == 0) return OBJ_BROKER;
+ if (str.compare("link") == 0) return OBJ_LINK;
+ if (str.compare("route") == 0) return OBJ_ROUTE;
+ if (str.compare("method") == 0) return OBJ_METHOD;
throw str;
}
static inline std::string getObjectTypeStr(const ObjectType o) {
switch (o) {
- case QUEUE: return "queue";
- case EXCHANGE: return "exchange";
- case BROKER: return "broker";
- case LINK: return "link";
- case ROUTE: return "route";
- case METHOD: return "method";
+ case OBJ_QUEUE: return "queue";
+ case OBJ_EXCHANGE: return "exchange";
+ case OBJ_BROKER: return "broker";
+ case OBJ_LINK: return "link";
+ case OBJ_ROUTE: return "route";
+ case OBJ_METHOD: return "method";
default: assert(false); // should never get here
}
return "";
}
static inline Action getAction(const std::string& str) {
- if (str.compare("consume") == 0) return CONSUME;
- if (str.compare("publish") == 0) return PUBLISH;
- if (str.compare("create") == 0) return CREATE;
- if (str.compare("access") == 0) return ACCESS;
- if (str.compare("bind") == 0) return BIND;
- if (str.compare("unbind") == 0) return UNBIND;
- if (str.compare("delete") == 0) return DELETE;
- if (str.compare("purge") == 0) return PURGE;
- if (str.compare("update") == 0) return UPDATE;
+ if (str.compare("consume") == 0) return ACT_CONSUME;
+ if (str.compare("publish") == 0) return ACT_PUBLISH;
+ if (str.compare("create") == 0) return ACT_CREATE;
+ if (str.compare("access") == 0) return ACT_ACCESS;
+ if (str.compare("bind") == 0) return ACT_BIND;
+ if (str.compare("unbind") == 0) return ACT_UNBIND;
+ if (str.compare("delete") == 0) return ACT_DELETE;
+ if (str.compare("purge") == 0) return ACT_PURGE;
+ if (str.compare("update") == 0) return ACT_UPDATE;
throw str;
}
static inline std::string getActionStr(const Action a) {
switch (a) {
- case CONSUME: return "consume";
- case PUBLISH: return "publish";
- case CREATE: return "create";
- case ACCESS: return "access";
- case BIND: return "bind";
- case UNBIND: return "unbind";
- case DELETE: return "delete";
- case PURGE: return "purge";
- case UPDATE: return "update";
+ case ACT_CONSUME: return "consume";
+ case ACT_PUBLISH: return "publish";
+ case ACT_CREATE: return "create";
+ case ACT_ACCESS: return "access";
+ case ACT_BIND: return "bind";
+ case ACT_UNBIND: return "unbind";
+ case ACT_DELETE: return "delete";
+ case ACT_PURGE: return "purge";
+ case ACT_UPDATE: return "update";
default: assert(false); // should never get here
}
return "";
}
static inline Property getProperty(const std::string& str) {
- if (str.compare("name") == 0) return NAME;
- if (str.compare("durable") == 0) return DURABLE;
- if (str.compare("owner") == 0) return OWNER;
- if (str.compare("routingkey") == 0) return ROUTINGKEY;
- if (str.compare("passive") == 0) return PASSIVE;
- if (str.compare("autodelete") == 0) return AUTODELETE;
- if (str.compare("exclusive") == 0) return EXCLUSIVE;
- if (str.compare("type") == 0) return TYPE;
- if (str.compare("alternate") == 0) return ALTERNATE;
- if (str.compare("queuename") == 0) return QUEUENAME;
- if (str.compare("schemapackage") == 0) return SCHEMAPACKAGE;
- if (str.compare("schemaclass") == 0) return SCHEMACLASS;
+ if (str.compare("name") == 0) return PROP_NAME;
+ if (str.compare("durable") == 0) return PROP_DURABLE;
+ if (str.compare("owner") == 0) return PROP_OWNER;
+ if (str.compare("routingkey") == 0) return PROP_ROUTINGKEY;
+ if (str.compare("passive") == 0) return PROP_PASSIVE;
+ if (str.compare("autodelete") == 0) return PROP_AUTODELETE;
+ if (str.compare("exclusive") == 0) return PROP_EXCLUSIVE;
+ if (str.compare("type") == 0) return PROP_TYPE;
+ if (str.compare("alternate") == 0) return PROP_ALTERNATE;
+ if (str.compare("queuename") == 0) return PROP_QUEUENAME;
+ if (str.compare("schemapackage") == 0) return PROP_SCHEMAPACKAGE;
+ if (str.compare("schemaclass") == 0) return PROP_SCHEMACLASS;
throw str;
}
static inline std::string getPropertyStr(const Property p) {
switch (p) {
- case NAME: return "name";
- case DURABLE: return "durable";
- case OWNER: return "owner";
- case ROUTINGKEY: return "routingkey";
- case PASSIVE: return "passive";
- case AUTODELETE: return "autodelete";
- case EXCLUSIVE: return "exclusive";
- case TYPE: return "type";
- case ALTERNATE: return "alternate";
- case QUEUENAME: return "queuename";
- case SCHEMAPACKAGE: return "schemapackage";
- case SCHEMACLASS: return "schemaclass";
+ case PROP_NAME: return "name";
+ case PROP_DURABLE: return "durable";
+ case PROP_OWNER: return "owner";
+ case PROP_ROUTINGKEY: return "routingkey";
+ case PROP_PASSIVE: return "passive";
+ case PROP_AUTODELETE: return "autodelete";
+ case PROP_EXCLUSIVE: return "exclusive";
+ case PROP_TYPE: return "type";
+ case PROP_ALTERNATE: return "alternate";
+ case PROP_QUEUENAME: return "queuename";
+ case PROP_SCHEMAPACKAGE: return "schemapackage";
+ case PROP_SCHEMACLASS: return "schemaclass";
default: assert(false); // should never get here
}
return "";
@@ -188,72 +192,72 @@
// == Exchanges ==
propSetPtr p1(new propSet);
- p1->insert(TYPE);
- p1->insert(ALTERNATE);
- p1->insert(PASSIVE);
- p1->insert(DURABLE);
+ p1->insert(PROP_TYPE);
+ p1->insert(PROP_ALTERNATE);
+ p1->insert(PROP_PASSIVE);
+ p1->insert(PROP_DURABLE);
propSetPtr p2(new propSet);
- p2->insert(ROUTINGKEY);
+ p2->insert(PROP_ROUTINGKEY);
propSetPtr p3(new propSet);
- p3->insert(QUEUENAME);
- p3->insert(ROUTINGKEY);
+ p3->insert(PROP_QUEUENAME);
+ p3->insert(PROP_ROUTINGKEY);
actionMapPtr a0(new actionMap);
- a0->insert(actionPair(CREATE, p1));
- a0->insert(actionPair(DELETE, p0));
- a0->insert(actionPair(ACCESS, p0));
- a0->insert(actionPair(BIND, p2));
- a0->insert(actionPair(UNBIND, p2));
- a0->insert(actionPair(ACCESS, p3));
- a0->insert(actionPair(PUBLISH, p0));
+ a0->insert(actionPair(ACT_CREATE, p1));
+ a0->insert(actionPair(ACT_DELETE, p0));
+ a0->insert(actionPair(ACT_ACCESS, p0));
+ a0->insert(actionPair(ACT_BIND, p2));
+ a0->insert(actionPair(ACT_UNBIND, p2));
+ a0->insert(actionPair(ACT_ACCESS, p3));
+ a0->insert(actionPair(ACT_PUBLISH, p0));
- map->insert(objectPair(EXCHANGE, a0));
+ map->insert(objectPair(OBJ_EXCHANGE, a0));
// == Queues ==
propSetPtr p4(new propSet);
- p3->insert(ALTERNATE);
- p3->insert(PASSIVE);
- p3->insert(DURABLE);
- p3->insert(EXCLUSIVE);
- p3->insert(AUTODELETE);
+ p3->insert(PROP_ALTERNATE);
+ p3->insert(PROP_PASSIVE);
+ p3->insert(PROP_DURABLE);
+ p3->insert(PROP_EXCLUSIVE);
+ p3->insert(PROP_AUTODELETE);
actionMapPtr a1(new actionMap);
- a1->insert(actionPair(ACCESS, p0));
- a1->insert(actionPair(CREATE, p4));
- a1->insert(actionPair(PURGE, p0));
- a1->insert(actionPair(DELETE, p0));
- a1->insert(actionPair(CONSUME, p0));
+ a1->insert(actionPair(ACT_ACCESS, p0));
+ a1->insert(actionPair(ACT_CREATE, p4));
+ a1->insert(actionPair(ACT_PURGE, p0));
+ a1->insert(actionPair(ACT_DELETE, p0));
+ a1->insert(actionPair(ACT_CONSUME, p0));
- map->insert(objectPair(QUEUE, a1));
+ map->insert(objectPair(OBJ_QUEUE, a1));
// == Links ==
actionMapPtr a2(new actionMap);
- a2->insert(actionPair(CREATE, p0));
+ a2->insert(actionPair(ACT_CREATE, p0));
- map->insert(objectPair(LINK, a2));
+ map->insert(objectPair(OBJ_LINK, a2));
// == Route ==
actionMapPtr a3(new actionMap);
- a3->insert(actionPair(CREATE, p0));
- a3->insert(actionPair(DELETE, p0));
+ a3->insert(actionPair(ACT_CREATE, p0));
+ a3->insert(actionPair(ACT_DELETE, p0));
- map->insert(objectPair(ROUTE, a3));
+ map->insert(objectPair(OBJ_ROUTE, a3));
// == Method ==
propSetPtr p5(new propSet);
- p5->insert(SCHEMAPACKAGE);
- p5->insert(SCHEMACLASS);
+ p5->insert(PROP_SCHEMAPACKAGE);
+ p5->insert(PROP_SCHEMACLASS);
actionMapPtr a4(new actionMap);
- a4->insert(actionPair(ACCESS, p5));
+ a4->insert(actionPair(ACT_ACCESS, p5));
- map->insert(objectPair(METHOD, a4));
+ map->insert(objectPair(OBJ_METHOD, a4));
}
};
Modified: incubator/qpid/trunk/qpid/cpp/src/qpid/broker/ConnectionHandler.cpp
URL: http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/cpp/src/qpid/broker/ConnectionHandler.cpp?rev=709283&r1=709282&r2=709283&view=diff
==============================================================================
--- incubator/qpid/trunk/qpid/cpp/src/qpid/broker/ConnectionHandler.cpp (original)
+++ incubator/qpid/trunk/qpid/cpp/src/qpid/broker/ConnectionHandler.cpp Thu Oct 30 16:14:51 2008
@@ -20,8 +20,6 @@
*
*/
-#include "config.h"
-
#include "ConnectionHandler.h"
#include "Connection.h"
#include "qpid/framing/ClientInvoker.h"
@@ -109,7 +107,7 @@
connection.setFederationLink(clientProperties.get(QPID_FED_LINK));
connection.setFederationPeerTag(clientProperties.getAsString(QPID_FED_TAG));
if (connection.isFederationLink()) {
- if (acl && !acl->authorise(connection.getUserId(),acl::CREATE,acl::LINK,"")){
+ if (acl && !acl->authorise(connection.getUserId(),acl::ACT_CREATE,acl::OBJ_LINK,"")){
client.close(framing::connection::CLOSE_CODE_CONNECTION_FORCED,"ACL denied creating a federation link");
return;
}
Modified: incubator/qpid/trunk/qpid/cpp/src/qpid/broker/SemanticState.cpp
URL: http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/cpp/src/qpid/broker/SemanticState.cpp?rev=709283&r1=709282&r2=709283&view=diff
==============================================================================
--- incubator/qpid/trunk/qpid/cpp/src/qpid/broker/SemanticState.cpp (original)
+++ incubator/qpid/trunk/qpid/cpp/src/qpid/broker/SemanticState.cpp Thu Oct 30 16:14:51 2008
@@ -379,7 +379,7 @@
if (acl && acl->doTransferAcl())
{
- if (!acl->authorise(getSession().getConnection().getUserId(),acl::PUBLISH,acl::EXCHANGE,exchangeName, msg->getRoutingKey() ))
+ if (!acl->authorise(getSession().getConnection().getUserId(),acl::ACT_PUBLISH,acl::OBJ_EXCHANGE,exchangeName, msg->getRoutingKey() ))
throw NotAllowedException(QPID_MSG(getSession().getConnection().getUserId() << " cannot publish to " <<
exchangeName << " with routing-key " << msg->getRoutingKey()));
}