summaryrefslogtreecommitdiff
path: root/qpid/java/broker-plugins/access-control/src/main/java/org/apache/qpid/server/security/access/plugins/DefaultAccessControl.java
diff options
context:
space:
mode:
Diffstat (limited to 'qpid/java/broker-plugins/access-control/src/main/java/org/apache/qpid/server/security/access/plugins/DefaultAccessControl.java')
-rw-r--r--qpid/java/broker-plugins/access-control/src/main/java/org/apache/qpid/server/security/access/plugins/DefaultAccessControl.java46
1 files changed, 43 insertions, 3 deletions
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 6f7885da94..451b1f9c40 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
@@ -29,6 +29,7 @@ import javax.security.auth.Subject;
import org.apache.commons.configuration.ConfigurationException;
import org.apache.commons.lang.ObjectUtils;
import org.apache.log4j.Logger;
+import org.apache.qpid.server.configuration.IllegalConfigurationException;
import org.apache.qpid.server.security.Result;
import org.apache.qpid.server.security.SecurityManager;
import org.apache.qpid.server.security.AccessControl;
@@ -44,6 +45,7 @@ public class DefaultAccessControl implements AccessControl
private static final Logger _logger = Logger.getLogger(DefaultAccessControl.class);
private RuleSet _ruleSet;
+ private File _aclFile;
public DefaultAccessControl(String fileName)
{
@@ -51,10 +53,8 @@ public class DefaultAccessControl implements AccessControl
{
_logger.debug("Creating AccessControl instance using file: " + fileName);
}
- File aclFile = new File(fileName);
- ConfigurationFile configFile = new PlainConfiguration(aclFile);
- _ruleSet = configFile.load();
+ _aclFile = new File(fileName);
}
DefaultAccessControl(RuleSet rs) throws ConfigurationException
@@ -62,6 +62,45 @@ public class DefaultAccessControl implements AccessControl
_ruleSet = rs;
}
+ public void open()
+ {
+ if(_aclFile != null)
+ {
+ if (!_aclFile.exists())
+ {
+ throw new IllegalConfigurationException("ACL file '" + _aclFile + "' is not found");
+ }
+
+ ConfigurationFile configFile = new PlainConfiguration(_aclFile);
+ _ruleSet = configFile.load();
+ }
+ }
+
+ @Override
+ public void close()
+ {
+ //no-op
+ }
+
+ @Override
+ public void onDelete()
+ {
+ //no-op
+ }
+
+ @Override
+ public void onCreate()
+ {
+ //verify file exists
+ if(_aclFile != null)
+ {
+ if (!_aclFile.exists())
+ {
+ throw new IllegalConfigurationException("ACL file '" + _aclFile + "' is not found");
+ }
+ }
+ }
+
public Result getDefault()
{
return _ruleSet.getDefault();
@@ -119,4 +158,5 @@ public class DefaultAccessControl implements AccessControl
return Result.DENIED;
}
}
+
}