diff options
| author | Alex Rudyy <orudyy@apache.org> | 2014-10-01 23:48:14 +0000 |
|---|---|---|
| committer | Alex Rudyy <orudyy@apache.org> | 2014-10-01 23:48:14 +0000 |
| commit | a638bc903339cac26e522df787ad4fcbca2344aa (patch) | |
| tree | 94a5bae92749b96c229ca36590e681032f6aa752 /qpid/java/broker-plugins/access-control/src/main | |
| parent | f84ed512e919a6c717cbdbcc22e8139bc64bc205 (diff) | |
| download | qpid-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.java | 31 |
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) |
