00001 #ifndef QPID_ACLMODULE_ACL_H
00002 #define QPID_ACLMODULE_ACL_H
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025 #include "qpid/shared_ptr.h"
00026 #include "qpid/RefCounted.h"
00027 #include <map>
00028 #include <string>
00029
00030
00031 namespace qpid {
00032
00033 namespace acl{
00034 enum ObjectType {QUEUE,EXCHANGE,BROKER,LINK,ROUTE};
00035 enum Action {CONSUME,PUBLISH,CREATE,ACCESS,BIND,UNBIND,DELETE,PURGE,UPDATE};
00036 enum AclResult {ALLOW,ALLOWLOG,DENY,DENYNOLOG};
00037 }
00038
00039 namespace broker {
00040
00041
00042 class AclModule
00043 {
00044
00045 public:
00046
00047
00048 virtual bool doTransferAcl()=0;
00049
00050 virtual bool authorise(std::string id, acl::Action action, acl::ObjectType objType, std::string name,
00051 std::map<std::string, std::string>* params)=0;
00052 virtual bool authorise(std::string id, acl::Action action, acl::ObjectType objType, std::string ExchangeName,
00053 std::string RoutingKey)=0;
00054
00055
00056 virtual ~AclModule() {};
00057 };
00058
00059
00060
00061 }}
00062
00063 #endif // QPID_ACLMODULE_ACL_H