summaryrefslogtreecommitdiff
path: root/qpid/java/broker-plugins/access-control/src/main
diff options
context:
space:
mode:
authorAlex Rudyy <orudyy@apache.org>2014-10-01 23:48:14 +0000
committerAlex Rudyy <orudyy@apache.org>2014-10-01 23:48:14 +0000
commita638bc903339cac26e522df787ad4fcbca2344aa (patch)
tree94a5bae92749b96c229ca36590e681032f6aa752 /qpid/java/broker-plugins/access-control/src/main
parentf84ed512e919a6c717cbdbcc22e8139bc64bc205 (diff)
downloadqpid-python-a638bc903339cac26e522df787ad4fcbca2344aa.tar.gz
QPID-6126: Add ability to validate CO attributes on creation, transit COs into ERRORED state if exception occurs on recovery, allow ERRORED CO restart after remediation of configuration problem
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1628867 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'qpid/java/broker-plugins/access-control/src/main')
-rw-r--r--qpid/java/broker-plugins/access-control/src/main/java/org/apache/qpid/server/security/access/plugins/ACLFileAccessControlProviderImpl.java31
1 files changed, 29 insertions, 2 deletions
diff --git a/qpid/java/broker-plugins/access-control/src/main/java/org/apache/qpid/server/security/access/plugins/ACLFileAccessControlProviderImpl.java b/qpid/java/broker-plugins/access-control/src/main/java/org/apache/qpid/server/security/access/plugins/ACLFileAccessControlProviderImpl.java
index f0edc59025..1adc6561c7 100644
--- a/qpid/java/broker-plugins/access-control/src/main/java/org/apache/qpid/server/security/access/plugins/ACLFileAccessControlProviderImpl.java
+++ b/qpid/java/broker-plugins/access-control/src/main/java/org/apache/qpid/server/security/access/plugins/ACLFileAccessControlProviderImpl.java
@@ -25,10 +25,10 @@ import java.util.Collection;
import java.util.Collections;
import java.util.Map;
import java.util.Set;
-import java.util.concurrent.atomic.AtomicReference;
import org.apache.log4j.Logger;
+import org.apache.qpid.server.configuration.IllegalConfigurationException;
import org.apache.qpid.server.model.AbstractConfiguredObject;
import org.apache.qpid.server.model.AccessControlProvider;
import org.apache.qpid.server.model.Broker;
@@ -83,6 +83,29 @@ public class ACLFileAccessControlProviderImpl
}
@Override
+ protected void validateOnCreate()
+ {
+ DefaultAccessControl accessControl = null;
+ try
+ {
+ accessControl = new DefaultAccessControl(getPath(), _broker);
+ accessControl.validate();
+ accessControl.open();
+ }
+ catch(RuntimeException e)
+ {
+ throw new IllegalConfigurationException(e.getMessage(), e);
+ }
+ finally
+ {
+ if (accessControl != null)
+ {
+ accessControl.close();
+ }
+ }
+ }
+
+ @Override
protected void onOpen()
{
super.onOpen();
@@ -105,6 +128,7 @@ public class ACLFileAccessControlProviderImpl
@StateTransition(currentState = {State.UNINITIALIZED, State.QUIESCED, State.ERRORED}, desiredState = State.ACTIVE)
private void activate()
{
+
if(_broker.isManagementMode())
{
@@ -136,7 +160,10 @@ public class ACLFileAccessControlProviderImpl
protected void onClose()
{
super.onClose();
- _accessControl.close();
+ if (_accessControl != null)
+ {
+ _accessControl.close();
+ }
}
@StateTransition(currentState = State.UNINITIALIZED, desiredState = State.QUIESCED)