diff options
author | Rajith Muditha Attapattu <rajith@apache.org> | 2008-12-10 14:53:07 +0000 |
---|---|---|
committer | Rajith Muditha Attapattu <rajith@apache.org> | 2008-12-10 14:53:07 +0000 |
commit | 7bac78cee32d55dd1e2ea06feb59563f32f9fa14 (patch) | |
tree | 030f6c02212f1bdc8cdfe640d1e1512cd3e2af24 /cpp | |
parent | ce2f5bbba4efcce8ce4e9a4e8c441086e114237b (diff) | |
download | qpid-python-7bac78cee32d55dd1e2ea06feb59563f32f9fa14.tar.gz |
This is related to QPID-1523
git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@725303 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'cpp')
-rw-r--r-- | cpp/src/qpid/acl/AclPlugin.cpp | 16 | ||||
-rwxr-xr-x | cpp/src/tests/run_acl_tests | 18 |
2 files changed, 28 insertions, 6 deletions
diff --git a/cpp/src/qpid/acl/AclPlugin.cpp b/cpp/src/qpid/acl/AclPlugin.cpp index ffba8d44cf..7310139041 100644 --- a/cpp/src/qpid/acl/AclPlugin.cpp +++ b/cpp/src/qpid/acl/AclPlugin.cpp @@ -61,9 +61,17 @@ struct AclPlugin : public Plugin { } if (acl) throw Exception("ACL plugin cannot be initialized twice in one process."); - std::ostringstream oss; - oss << b.getDataDir().getPath() << "/" << values.aclFile; - values.aclFile = oss.str(); + + if (values.aclFile.at(0) == '/') + { + values.aclFile = values.aclFile; + } + else + { + std::ostringstream oss; + oss << b.getDataDir().getPath() << "/" << values.aclFile; + values.aclFile = oss.str(); + } acl = new Acl(values, b); b.setAcl(acl.get()); @@ -89,5 +97,5 @@ static AclPlugin instance; // Static initialization. // For test purposes. boost::intrusive_ptr<Acl> getGlobalAcl() { return instance.acl; } - + }} // namespace qpid::acl diff --git a/cpp/src/tests/run_acl_tests b/cpp/src/tests/run_acl_tests index 0cf673228a..a1649908c1 100755 --- a/cpp/src/tests/run_acl_tests +++ b/cpp/src/tests/run_acl_tests @@ -15,6 +15,18 @@ stop_brokers() { ../qpidd -q --port $LOCAL_PORT } +test_loading_acl_from_absolute_path(){ + ../qpidd --daemon --port 0 --no-module-dir --no-data-dir --auth no --load-module ../.libs/acl.so --acl-file $PWD/policy.acl -t --log-to-file temp.log 2>/dev/null + PORT=`grep "Listening on TCP port" temp.log | awk '{print $8}'` + ACL_FILE=`grep "notice Read ACL file" temp.log | awk '{print $7}'` + rm -rf temp.log + ../qpidd -q --port $PORT + if test $ACL_FILE != "\"$PWD/policy.acl\""; then + echo "unable to load policy file from an absolute path"; + return 1; + fi +} + if test -d ${PYTHON_DIR} ; then rm -rf $DATA_DIR mkdir -p $DATA_DIR @@ -24,10 +36,12 @@ if test -d ${PYTHON_DIR} ; then PYTHONPATH=$PYTHON_DIR export PYTHONPATH $srcdir/acl.py -v -s $srcdir/../../../specs/amqp.0-10-qpid-errata.xml -b localhost:$LOCAL_PORT --port $LOCAL_PORT - RETCODE=$? + RETCODE=$? stop_brokers + test_loading_acl_from_absolute_path + RETCODE2=$? rm -rf $DATA_DIR - if test x$RETCODE != x0; then + if test x$RETCODE != x0 -o x$RETCODE2 != x0; then echo "FAIL acl tests"; exit 1; fi fi |