summaryrefslogtreecommitdiff
path: root/cpp
diff options
context:
space:
mode:
authorRajith Muditha Attapattu <rajith@apache.org>2008-12-10 14:53:07 +0000
committerRajith Muditha Attapattu <rajith@apache.org>2008-12-10 14:53:07 +0000
commit7bac78cee32d55dd1e2ea06feb59563f32f9fa14 (patch)
tree030f6c02212f1bdc8cdfe640d1e1512cd3e2af24 /cpp
parentce2f5bbba4efcce8ce4e9a4e8c441086e114237b (diff)
downloadqpid-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.cpp16
-rwxr-xr-xcpp/src/tests/run_acl_tests18
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