From ce7a04a183f35813007ac5e793cef7cbac081620 Mon Sep 17 00:00:00 2001 From: Robert Gemmell Date: Mon, 29 Apr 2013 15:39:20 +0000 Subject: QPID-4753: set vhost SecurityManager _managementMode boolean to equal the parent/broker SecurityManager, validate the ACL file during onCreate to ensure it is usable before allowing it to be added git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1477155 13f79535-47bb-0310-9956-ffa450edef68 --- .../qpid/server/security/access/plugins/DefaultAccessControl.java | 5 ++++- .../main/java/org/apache/qpid/server/security/SecurityManager.java | 2 ++ 2 files changed, 6 insertions(+), 1 deletion(-) (limited to 'qpid/java') diff --git a/qpid/java/broker-plugins/access-control/src/main/java/org/apache/qpid/server/security/access/plugins/DefaultAccessControl.java b/qpid/java/broker-plugins/access-control/src/main/java/org/apache/qpid/server/security/access/plugins/DefaultAccessControl.java index 451b1f9c40..6beeef2f18 100644 --- a/qpid/java/broker-plugins/access-control/src/main/java/org/apache/qpid/server/security/access/plugins/DefaultAccessControl.java +++ b/qpid/java/broker-plugins/access-control/src/main/java/org/apache/qpid/server/security/access/plugins/DefaultAccessControl.java @@ -91,13 +91,16 @@ public class DefaultAccessControl implements AccessControl @Override public void onCreate() { - //verify file exists if(_aclFile != null) { + //verify it exists if (!_aclFile.exists()) { throw new IllegalConfigurationException("ACL file '" + _aclFile + "' is not found"); } + + //verify it is parsable + new PlainConfiguration(_aclFile).load(); } } diff --git a/qpid/java/broker/src/main/java/org/apache/qpid/server/security/SecurityManager.java b/qpid/java/broker/src/main/java/org/apache/qpid/server/security/SecurityManager.java index 375b731d85..f0570943cf 100755 --- a/qpid/java/broker/src/main/java/org/apache/qpid/server/security/SecurityManager.java +++ b/qpid/java/broker/src/main/java/org/apache/qpid/server/security/SecurityManager.java @@ -137,6 +137,8 @@ public class SecurityManager implements ConfigurationChangeListener */ public SecurityManager(SecurityManager parent, String aclFile, String vhostName) { + _managementMode = parent._managementMode; + if(!_managementMode) { configureVirtualHostAclPlugin(aclFile, vhostName); -- cgit v1.2.1