Author: rajith
Date: Wed Dec 10 06:53:07 2008
New Revision: 725303
URL: http://svn.apache.org/viewvc?rev=725303&view=rev
Log:
This is related to QPID-1523
Modified:
incubator/qpid/trunk/qpid/cpp/src/qpid/acl/AclPlugin.cpp
incubator/qpid/trunk/qpid/cpp/src/tests/run_acl_tests
Modified: incubator/qpid/trunk/qpid/cpp/src/qpid/acl/AclPlugin.cpp
URL:
http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/cpp/src/qpid/acl/AclPlugin.cpp?rev=725303&r1=725302&r2=725303&view=diff
==============================================================================
--- incubator/qpid/trunk/qpid/cpp/src/qpid/acl/AclPlugin.cpp (original)
+++ incubator/qpid/trunk/qpid/cpp/src/qpid/acl/AclPlugin.cpp Wed Dec 10
06:53:07 2008
@@ -61,9 +61,17 @@
}
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 @@
// For test purposes.
boost::intrusive_ptr<Acl> getGlobalAcl() { return instance.acl; }
-
+
}} // namespace qpid::acl
Modified: incubator/qpid/trunk/qpid/cpp/src/tests/run_acl_tests
URL:
http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/cpp/src/tests/run_acl_tests?rev=725303&r1=725302&r2=725303&view=diff
==============================================================================
--- incubator/qpid/trunk/qpid/cpp/src/tests/run_acl_tests (original)
+++ incubator/qpid/trunk/qpid/cpp/src/tests/run_acl_tests Wed Dec 10 06:53:07
2008
@@ -15,6 +15,18 @@
../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 @@
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