diff options
| author | Martin Ritchie <ritchiem@apache.org> | 2010-06-03 21:27:48 +0000 |
|---|---|---|
| committer | Martin Ritchie <ritchiem@apache.org> | 2010-06-03 21:27:48 +0000 |
| commit | f3ec30568c2b2e03059da573d6c31d4d602b06fd (patch) | |
| tree | 3daa612782d88ac6df9b36ffae4654dbea1e6d7d /java/broker-plugins/access-control/src | |
| parent | 388d42d6be196afb5f9803278a45f46199dc9e30 (diff) | |
| download | qpid-python-f3ec30568c2b2e03059da573d6c31d4d602b06fd.tar.gz | |
QPID-2581 : Update Plugins that use configuration to only throw ConfigurationExceptions during the configuration phase of loading configuration.
Creating a plugin and providing it with configuration should not throw a configuration exception.
Added configuration validation to newer plugins SimpleXML still needs validation.
todo Docuement Configuration mechanism.
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@951159 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'java/broker-plugins/access-control/src')
2 files changed, 31 insertions, 14 deletions
diff --git a/java/broker-plugins/access-control/src/main/java/org/apache/qpid/server/security/access/plugins/AccessControl.java b/java/broker-plugins/access-control/src/main/java/org/apache/qpid/server/security/access/plugins/AccessControl.java index 69e3218bf5..59fbaa4a34 100644 --- a/java/broker-plugins/access-control/src/main/java/org/apache/qpid/server/security/access/plugins/AccessControl.java +++ b/java/broker-plugins/access-control/src/main/java/org/apache/qpid/server/security/access/plugins/AccessControl.java @@ -79,13 +79,6 @@ public class AccessControl extends AbstractPlugin return _ruleSet.getDefault(); } - /** Parse a version two access control file. */ - private void parseFile(File aclFile) throws ConfigurationException - { - ConfigurationFile configFile = new PlainConfiguration(aclFile); - _ruleSet = configFile.load(); - } - /** * Object instance access authorisation. * @@ -115,14 +108,12 @@ public class AccessControl extends AbstractPlugin return _ruleSet.check(principal.getName(), operation, objectType, properties); } - public void configure(ConfigurationPlugin config) throws ConfigurationException + public void configure(ConfigurationPlugin config) { super.configure(config); AccessControlConfiguration accessConfig = (AccessControlConfiguration) _config; - String fileName = accessConfig.getFileName(); - File aclFile = new File(fileName); - parseFile(aclFile); + _ruleSet = accessConfig.getRuleSet(); } } diff --git a/java/broker-plugins/access-control/src/main/java/org/apache/qpid/server/security/access/plugins/AccessControlConfiguration.java b/java/broker-plugins/access-control/src/main/java/org/apache/qpid/server/security/access/plugins/AccessControlConfiguration.java index 2d6ac99a98..f7db740ebc 100644 --- a/java/broker-plugins/access-control/src/main/java/org/apache/qpid/server/security/access/plugins/AccessControlConfiguration.java +++ b/java/broker-plugins/access-control/src/main/java/org/apache/qpid/server/security/access/plugins/AccessControlConfiguration.java @@ -20,6 +20,7 @@ */ package org.apache.qpid.server.security.access.plugins; +import java.io.File; import java.util.Arrays; import java.util.List; @@ -27,6 +28,9 @@ import org.apache.commons.configuration.Configuration; import org.apache.commons.configuration.ConfigurationException; import org.apache.qpid.server.configuration.plugins.ConfigurationPlugin; import org.apache.qpid.server.configuration.plugins.ConfigurationPluginFactory; +import org.apache.qpid.server.security.access.config.ConfigurationFile; +import org.apache.qpid.server.security.access.config.PlainConfiguration; +import org.apache.qpid.server.security.access.config.RuleSet; public class AccessControlConfiguration extends ConfigurationPlugin { @@ -41,17 +45,39 @@ public class AccessControlConfiguration extends ConfigurationPlugin public List<String> getParentPaths() { - return Arrays.asList("security", "virtualhosts.virtualhost.security"); + return Arrays.asList("security.aclv2", "virtualhosts.virtualhost.security.aclv2"); } }; + private RuleSet _ruleSet; + public String[] getElementsProcessed() { - return new String[] { "aclv2" }; + return new String[] { "" }; } public String getFileName() { - return _configuration.getString("aclv2"); + return _configuration.getString(""); } + + public void validateConfiguration() throws ConfigurationException + { + String filename = getFileName(); + if (filename == null) + { + throw new ConfigurationException("No ACL file name specified"); + } + + File aclFile = new File(filename); + + ConfigurationFile configFile = new PlainConfiguration(aclFile); + _ruleSet = configFile.load(); + } + + public RuleSet getRuleSet() + { + return _ruleSet; + } + } |
