diff options
author | Rajith Muditha Attapattu <rajith@apache.org> | 2011-05-27 15:44:23 +0000 |
---|---|---|
committer | Rajith Muditha Attapattu <rajith@apache.org> | 2011-05-27 15:44:23 +0000 |
commit | 66765100f4257159622cefe57bed50125a5ad017 (patch) | |
tree | a88ee23bb194eb91f0ebb2d9b23ff423e3ea8e37 /cpp/src/qpid/acl/AclPlugin.cpp | |
parent | 1aeaa7b16e5ce54f10c901d75c4d40f9f88b9db6 (diff) | |
parent | 88b98b2f4152ef59a671fad55a0d08338b6b78ca (diff) | |
download | qpid-python-rajith_jms_client.tar.gz |
Creating a branch for experimenting with some ideas for JMS client.rajith_jms_client
git-svn-id: https://svn.apache.org/repos/asf/qpid/branches/rajith_jms_client@1128369 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'cpp/src/qpid/acl/AclPlugin.cpp')
-rw-r--r-- | cpp/src/qpid/acl/AclPlugin.cpp | 96 |
1 files changed, 0 insertions, 96 deletions
diff --git a/cpp/src/qpid/acl/AclPlugin.cpp b/cpp/src/qpid/acl/AclPlugin.cpp deleted file mode 100644 index e4d721ea44..0000000000 --- a/cpp/src/qpid/acl/AclPlugin.cpp +++ /dev/null @@ -1,96 +0,0 @@ -/* - * - * Copyright (c) 2006 The Apache Software Foundation - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - */ - -#include <sstream> -#include "qpid/acl/Acl.h" -#include "qpid/broker/Broker.h" -#include "qpid/Plugin.h" -#include "qpid/Options.h" -#include "qpid/log/Statement.h" - -#include <boost/shared_ptr.hpp> -#include <boost/utility/in_place_factory.hpp> - -namespace qpid { -namespace acl { - -using namespace std; - -/** Note separating options from values to work around boost version differences. - * Old boost takes a reference to options objects, but new boost makes a copy. - * New boost allows a shared_ptr but that's not compatible with old boost. - */ -struct AclOptions : public Options { - AclValues& values; - - AclOptions(AclValues& v) : Options("ACL Options"), values(v) { - addOptions() - ("acl-file", optValue(values.aclFile, "FILE"), "The policy file to load from, loaded from data dir"); - } -}; - -struct AclPlugin : public Plugin { - - AclValues values; - AclOptions options; - boost::intrusive_ptr<Acl> acl; - - AclPlugin() : options(values) {} - - Options* getOptions() { return &options; } - - void init(broker::Broker& b) { - if (values.aclFile.empty()){ - QPID_LOG(info, "Policy file not specified. ACL Disabled, no ACL checking being done!"); - return; - } - - if (acl) throw Exception("ACL plugin cannot be initialized twice in one process."); - - if (values.aclFile.at(0) != '/' && !b.getDataDir().getPath().empty()) { - std::ostringstream oss; - oss << b.getDataDir().getPath() << "/" << values.aclFile; - values.aclFile = oss.str(); - } - - acl = new Acl(values, b); - b.setAcl(acl.get()); - b.addFinalizer(boost::bind(&AclPlugin::shutdown, this)); - } - - template <class T> bool init(Plugin::Target& target) { - T* t = dynamic_cast<T*>(&target); - if (t) init(*t); - return t; - } - - void earlyInitialize(Plugin::Target&) {} - - void initialize(Plugin::Target& target) { - init<broker::Broker>(target); - } - - void shutdown() { acl = 0; } -}; - -static AclPlugin instance; // Static initialization. - -// For test purposes. -boost::intrusive_ptr<Acl> getGlobalAcl() { return instance.acl; } - -}} // namespace qpid::acl |