summaryrefslogtreecommitdiff
path: root/java/broker-plugins/access-control/src
diff options
context:
space:
mode:
authorMartin Ritchie <ritchiem@apache.org>2010-06-03 21:27:48 +0000
committerMartin Ritchie <ritchiem@apache.org>2010-06-03 21:27:48 +0000
commitf3ec30568c2b2e03059da573d6c31d4d602b06fd (patch)
tree3daa612782d88ac6df9b36ffae4654dbea1e6d7d /java/broker-plugins/access-control/src
parent388d42d6be196afb5f9803278a45f46199dc9e30 (diff)
downloadqpid-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')
-rw-r--r--java/broker-plugins/access-control/src/main/java/org/apache/qpid/server/security/access/plugins/AccessControl.java13
-rw-r--r--java/broker-plugins/access-control/src/main/java/org/apache/qpid/server/security/access/plugins/AccessControlConfiguration.java32
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;
+ }
+
}