summaryrefslogtreecommitdiff
path: root/qpid/java/broker-plugins/access-control
diff options
context:
space:
mode:
authorRobert Godfrey <rgodfrey@apache.org>2014-03-08 14:36:06 +0000
committerRobert Godfrey <rgodfrey@apache.org>2014-03-08 14:36:06 +0000
commit19b2671cbd4af77ac52c222605c09b06cab7ced6 (patch)
tree6f650ec2b1ad6bbdd5c64d0a4415b52fa136a41e /qpid/java/broker-plugins/access-control
parent9d32428fce0ff0631319e2eae21081a2f8f19e9b (diff)
downloadqpid-python-19b2671cbd4af77ac52c222605c09b06cab7ced6.tar.gz
QPID-5611 : Fix other logging to always use the most current event logger held at the broker
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1575547 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'qpid/java/broker-plugins/access-control')
-rw-r--r--qpid/java/broker-plugins/access-control/src/main/java/org/apache/qpid/server/security/access/config/AbstractConfiguration.java5
-rw-r--r--qpid/java/broker-plugins/access-control/src/main/java/org/apache/qpid/server/security/access/config/PlainConfiguration.java3
-rw-r--r--qpid/java/broker-plugins/access-control/src/main/java/org/apache/qpid/server/security/access/config/RuleSet.java13
-rw-r--r--qpid/java/broker-plugins/access-control/src/main/java/org/apache/qpid/server/security/access/plugins/DefaultAccessControl.java7
-rw-r--r--qpid/java/broker-plugins/access-control/src/main/java/org/apache/qpid/server/security/access/plugins/DefaultAccessControlFactory.java3
-rw-r--r--qpid/java/broker-plugins/access-control/src/test/java/org/apache/qpid/server/security/access/config/PlainConfigurationTest.java5
-rw-r--r--qpid/java/broker-plugins/access-control/src/test/java/org/apache/qpid/server/security/access/plugins/DefaultAccessControlFactoryTest.java7
-rw-r--r--qpid/java/broker-plugins/access-control/src/test/java/org/apache/qpid/server/security/access/plugins/DefaultAccessControlTest.java17
-rw-r--r--qpid/java/broker-plugins/access-control/src/test/java/org/apache/qpid/server/security/access/plugins/RuleSetTest.java3
9 files changed, 37 insertions, 26 deletions
diff --git a/qpid/java/broker-plugins/access-control/src/main/java/org/apache/qpid/server/security/access/config/AbstractConfiguration.java b/qpid/java/broker-plugins/access-control/src/main/java/org/apache/qpid/server/security/access/config/AbstractConfiguration.java
index 09ffb71519..e15361acfe 100644
--- a/qpid/java/broker-plugins/access-control/src/main/java/org/apache/qpid/server/security/access/config/AbstractConfiguration.java
+++ b/qpid/java/broker-plugins/access-control/src/main/java/org/apache/qpid/server/security/access/config/AbstractConfiguration.java
@@ -21,6 +21,7 @@
package org.apache.qpid.server.security.access.config;
import org.apache.qpid.server.logging.EventLogger;
+import org.apache.qpid.server.logging.EventLoggerProvider;
import java.io.File;
@@ -28,9 +29,9 @@ public abstract class AbstractConfiguration implements ConfigurationFile
{
private File _file;
private RuleSet _config;
- private final EventLogger _eventLogger;
+ private final EventLoggerProvider _eventLogger;
- public AbstractConfiguration(File file, final EventLogger eventLogger)
+ public AbstractConfiguration(File file, final EventLoggerProvider eventLogger)
{
_file = file;
_eventLogger = eventLogger;
diff --git a/qpid/java/broker-plugins/access-control/src/main/java/org/apache/qpid/server/security/access/config/PlainConfiguration.java b/qpid/java/broker-plugins/access-control/src/main/java/org/apache/qpid/server/security/access/config/PlainConfiguration.java
index df5b66da84..8a5dae8244 100644
--- a/qpid/java/broker-plugins/access-control/src/main/java/org/apache/qpid/server/security/access/config/PlainConfiguration.java
+++ b/qpid/java/broker-plugins/access-control/src/main/java/org/apache/qpid/server/security/access/config/PlainConfiguration.java
@@ -36,6 +36,7 @@ import org.apache.commons.lang.StringUtils;
import org.apache.log4j.Logger;
import org.apache.qpid.server.configuration.IllegalConfigurationException;
import org.apache.qpid.server.logging.EventLogger;
+import org.apache.qpid.server.logging.EventLoggerProvider;
import org.apache.qpid.server.security.access.ObjectType;
import org.apache.qpid.server.security.access.Operation;
import org.apache.qpid.server.security.access.Permission;
@@ -68,7 +69,7 @@ public class PlainConfiguration extends AbstractConfiguration
private StreamTokenizer _st;
- public PlainConfiguration(File file, final EventLogger eventLogger)
+ public PlainConfiguration(File file, final EventLoggerProvider eventLogger)
{
super(file, eventLogger);
}
diff --git a/qpid/java/broker-plugins/access-control/src/main/java/org/apache/qpid/server/security/access/config/RuleSet.java b/qpid/java/broker-plugins/access-control/src/main/java/org/apache/qpid/server/security/access/config/RuleSet.java
index 6e9bc590f4..7bf5626197 100644
--- a/qpid/java/broker-plugins/access-control/src/main/java/org/apache/qpid/server/security/access/config/RuleSet.java
+++ b/qpid/java/broker-plugins/access-control/src/main/java/org/apache/qpid/server/security/access/config/RuleSet.java
@@ -39,6 +39,7 @@ import org.apache.commons.lang.BooleanUtils;
import org.apache.commons.lang.StringUtils;
import org.apache.log4j.Logger;
import org.apache.qpid.server.logging.EventLogger;
+import org.apache.qpid.server.logging.EventLoggerProvider;
import org.apache.qpid.server.logging.messages.AccessControlMessages;
import org.apache.qpid.server.security.Result;
import org.apache.qpid.server.security.access.ObjectProperties;
@@ -52,7 +53,7 @@ import org.apache.qpid.server.security.access.Permission;
* The access control rule definitions are loaded from an external configuration file, passed in as the
* target to the {@link load(ConfigurationFile)} method. The file specified
*/
-public class RuleSet
+public class RuleSet implements EventLoggerProvider
{
private static final Logger _logger = Logger.getLogger(RuleSet.class);
@@ -70,9 +71,9 @@ public class RuleSet
private final Map<Subject, Map<Operation, Map<ObjectType, List<Rule>>>> _cache =
new WeakHashMap<Subject, Map<Operation, Map<ObjectType, List<Rule>>>>();
private final Map<String, Boolean> _config = new HashMap<String, Boolean>();
- private final EventLogger _eventLogger;
+ private final EventLoggerProvider _eventLogger;
- public RuleSet(EventLogger eventLogger)
+ public RuleSet(EventLoggerProvider eventLogger)
{
_eventLogger = eventLogger;
// set some default configuration properties
@@ -323,14 +324,14 @@ public class RuleSet
switch (permission)
{
case ALLOW_LOG:
- _eventLogger.message(AccessControlMessages.ALLOWED(
+ getEventLogger().message(AccessControlMessages.ALLOWED(
action.getOperation().toString(),
action.getObjectType().toString(),
action.getProperties().toString()));
case ALLOW:
return Result.ALLOWED;
case DENY_LOG:
- _eventLogger.message(AccessControlMessages.DENIED(
+ getEventLogger().message(AccessControlMessages.DENIED(
action.getOperation().toString(),
action.getObjectType().toString(),
action.getProperties().toString()));
@@ -442,6 +443,6 @@ public class RuleSet
public EventLogger getEventLogger()
{
- return _eventLogger;
+ return _eventLogger.getEventLogger();
}
}
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 b56cd7c077..f6d8b04880 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
@@ -35,6 +35,7 @@ import org.apache.log4j.Logger;
import org.apache.qpid.server.configuration.IllegalConfigurationException;
import org.apache.qpid.server.connection.ConnectionPrincipal;
import org.apache.qpid.server.logging.EventLogger;
+import org.apache.qpid.server.logging.EventLoggerProvider;
import org.apache.qpid.server.security.Result;
import org.apache.qpid.server.security.AccessControl;
import org.apache.qpid.server.security.access.ObjectProperties;
@@ -50,9 +51,9 @@ public class DefaultAccessControl implements AccessControl
private RuleSet _ruleSet;
private File _aclFile;
- private final EventLogger _eventLogger;
+ private final EventLoggerProvider _eventLogger;
- public DefaultAccessControl(String fileName, final EventLogger eventLogger)
+ public DefaultAccessControl(String fileName, final EventLoggerProvider eventLogger)
{
_eventLogger = eventLogger;
if (_logger.isDebugEnabled())
@@ -66,7 +67,7 @@ public class DefaultAccessControl implements AccessControl
DefaultAccessControl(RuleSet rs) throws ConfigurationException
{
_ruleSet = rs;
- _eventLogger = rs.getEventLogger();
+ _eventLogger = rs;
}
public void open()
diff --git a/qpid/java/broker-plugins/access-control/src/main/java/org/apache/qpid/server/security/access/plugins/DefaultAccessControlFactory.java b/qpid/java/broker-plugins/access-control/src/main/java/org/apache/qpid/server/security/access/plugins/DefaultAccessControlFactory.java
index af3b456083..0d4734df88 100644
--- a/qpid/java/broker-plugins/access-control/src/main/java/org/apache/qpid/server/security/access/plugins/DefaultAccessControlFactory.java
+++ b/qpid/java/broker-plugins/access-control/src/main/java/org/apache/qpid/server/security/access/plugins/DefaultAccessControlFactory.java
@@ -31,6 +31,7 @@ import java.util.Map;
import org.apache.qpid.server.configuration.IllegalConfigurationException;
import org.apache.qpid.server.logging.EventLogger;
+import org.apache.qpid.server.logging.EventLoggerProvider;
import org.apache.qpid.server.plugin.AccessControlFactory;
import org.apache.qpid.server.security.AccessControl;
import org.apache.qpid.server.util.ResourceBundleLoader;
@@ -44,7 +45,7 @@ public class DefaultAccessControlFactory implements AccessControlFactory
PATH
));
- public AccessControl createInstance(Map<String, Object> attributes, final EventLogger eventLogger)
+ public AccessControl createInstance(Map<String, Object> attributes, final EventLoggerProvider eventLogger)
{
if(attributes == null || !ACL_FILE_PROVIDER_TYPE.equals(attributes.get(ATTRIBUTE_TYPE)))
{
diff --git a/qpid/java/broker-plugins/access-control/src/test/java/org/apache/qpid/server/security/access/config/PlainConfigurationTest.java b/qpid/java/broker-plugins/access-control/src/test/java/org/apache/qpid/server/security/access/config/PlainConfigurationTest.java
index e457d191c9..1440904c74 100644
--- a/qpid/java/broker-plugins/access-control/src/test/java/org/apache/qpid/server/security/access/config/PlainConfigurationTest.java
+++ b/qpid/java/broker-plugins/access-control/src/test/java/org/apache/qpid/server/security/access/config/PlainConfigurationTest.java
@@ -28,6 +28,7 @@ import junit.framework.TestCase;
import org.apache.qpid.server.configuration.IllegalConfigurationException;
import org.apache.qpid.server.logging.EventLogger;
+import org.apache.qpid.server.logging.EventLoggerProvider;
import org.apache.qpid.server.security.access.ObjectProperties;
import org.apache.qpid.server.security.access.ObjectProperties.Property;
import org.apache.qpid.server.security.access.ObjectType;
@@ -57,7 +58,7 @@ public class PlainConfigurationTest extends TestCase
aclWriter.close();
// Load ruleset
- PlainConfiguration configFile = new PlainConfiguration(acl, new EventLogger());
+ PlainConfiguration configFile = new PlainConfiguration(acl, mock(EventLoggerProvider.class));
configFile.load();
return configFile;
}
@@ -67,7 +68,7 @@ public class PlainConfigurationTest extends TestCase
try
{
// Load ruleset
- ConfigurationFile configFile = new PlainConfiguration(new File("doesnotexist"), new EventLogger());
+ ConfigurationFile configFile = new PlainConfiguration(new File("doesnotexist"), mock(EventLoggerProvider.class));
configFile.load();
fail("fail");
diff --git a/qpid/java/broker-plugins/access-control/src/test/java/org/apache/qpid/server/security/access/plugins/DefaultAccessControlFactoryTest.java b/qpid/java/broker-plugins/access-control/src/test/java/org/apache/qpid/server/security/access/plugins/DefaultAccessControlFactoryTest.java
index 5ed5b91cb8..c4c36df6d9 100644
--- a/qpid/java/broker-plugins/access-control/src/test/java/org/apache/qpid/server/security/access/plugins/DefaultAccessControlFactoryTest.java
+++ b/qpid/java/broker-plugins/access-control/src/test/java/org/apache/qpid/server/security/access/plugins/DefaultAccessControlFactoryTest.java
@@ -27,6 +27,7 @@ import java.util.regex.Pattern;
import org.apache.qpid.server.configuration.IllegalConfigurationException;
import org.apache.qpid.server.logging.EventLogger;
+import org.apache.qpid.server.logging.EventLoggerProvider;
import org.apache.qpid.server.model.GroupProvider;
import org.apache.qpid.server.security.AccessControl;
import org.apache.qpid.server.security.access.FileAccessControlProviderConstants;
@@ -41,7 +42,7 @@ public class DefaultAccessControlFactoryTest extends QpidTestCase
{
DefaultAccessControlFactory factory = new DefaultAccessControlFactory();
Map<String, Object> attributes = new HashMap<String, Object>();
- AccessControl acl = factory.createInstance(attributes, new EventLogger());
+ AccessControl acl = factory.createInstance(attributes, mock(EventLoggerProvider.class));
assertNull("ACL was created without a configuration file", acl);
}
@@ -52,7 +53,7 @@ public class DefaultAccessControlFactoryTest extends QpidTestCase
Map<String, Object> attributes = new HashMap<String, Object>();
attributes.put(GroupProvider.TYPE, FileAccessControlProviderConstants.ACL_FILE_PROVIDER_TYPE);
attributes.put(FileAccessControlProviderConstants.PATH, aclFile.getAbsolutePath());
- AccessControl acl = factory.createInstance(attributes, new EventLogger());
+ AccessControl acl = factory.createInstance(attributes, mock(EventLoggerProvider.class));
acl.open();
assertNotNull("ACL was not created from acl file: " + aclFile.getAbsolutePath(), acl);
@@ -68,7 +69,7 @@ public class DefaultAccessControlFactoryTest extends QpidTestCase
attributes.put(FileAccessControlProviderConstants.PATH, aclFile.getAbsolutePath());
try
{
- AccessControl control = factory.createInstance(attributes, new EventLogger());
+ AccessControl control = factory.createInstance(attributes, mock(EventLoggerProvider.class));
control.open();
fail("It should not be possible to create and initialise ACL with non existing file");
}
diff --git a/qpid/java/broker-plugins/access-control/src/test/java/org/apache/qpid/server/security/access/plugins/DefaultAccessControlTest.java b/qpid/java/broker-plugins/access-control/src/test/java/org/apache/qpid/server/security/access/plugins/DefaultAccessControlTest.java
index e35f4301ed..74ea7639ff 100644
--- a/qpid/java/broker-plugins/access-control/src/test/java/org/apache/qpid/server/security/access/plugins/DefaultAccessControlTest.java
+++ b/qpid/java/broker-plugins/access-control/src/test/java/org/apache/qpid/server/security/access/plugins/DefaultAccessControlTest.java
@@ -34,6 +34,7 @@ import junit.framework.TestCase;
import org.apache.commons.configuration.ConfigurationException;
import org.apache.qpid.server.connection.ConnectionPrincipal;
import org.apache.qpid.server.logging.EventLogger;
+import org.apache.qpid.server.logging.EventLoggerProvider;
import org.apache.qpid.server.logging.UnitTestMessageLogger;
import org.apache.qpid.server.protocol.AMQConnectionModel;
import org.apache.qpid.server.security.Result;
@@ -79,7 +80,9 @@ public class DefaultAccessControlTest extends TestCase
private RuleSet createGroupRuleSet()
{
- final RuleSet rs = new RuleSet(_eventLogger);
+ final EventLoggerProvider provider = mock(EventLoggerProvider.class);
+ when(provider.getEventLogger()).thenReturn(_eventLogger);
+ final RuleSet rs = new RuleSet(provider);
// Rule expressed with username
rs.grant(0, "user1", Permission.ALLOW, Operation.ACCESS, ObjectType.VIRTUALHOST, ObjectProperties.EMPTY);
@@ -176,7 +179,7 @@ public class DefaultAccessControlTest extends TestCase
*/
public void testAuthoriseAccessMethodWhenAllAccessOperationsAllowedOnAllComponents() throws ConfigurationException
{
- final RuleSet rs = new RuleSet(_eventLogger);
+ final RuleSet rs = new RuleSet(mock(EventLoggerProvider.class));
// grant user4 access right on any method in any component
rs.grant(1, "user4", Permission.ALLOW, Operation.ACCESS, ObjectType.METHOD, new ObjectProperties(ObjectProperties.STAR));
@@ -202,7 +205,7 @@ public class DefaultAccessControlTest extends TestCase
*/
public void testAuthoriseAccessMethodWhenAllAccessOperationsAllowedOnSpecifiedComponent() throws ConfigurationException
{
- final RuleSet rs = new RuleSet(_eventLogger);
+ final RuleSet rs = new RuleSet(mock(EventLoggerProvider.class));
// grant user5 access right on any methods in "Test" component
ObjectProperties ruleProperties = new ObjectProperties(ObjectProperties.STAR);
@@ -302,7 +305,7 @@ public class DefaultAccessControlTest extends TestCase
*/
public void testAuthoriseAccessMethodWhenSpecifiedAccessOperationsAllowedOnSpecifiedComponent() throws ConfigurationException
{
- final RuleSet rs = new RuleSet(_eventLogger);
+ final RuleSet rs = new RuleSet(mock(EventLoggerProvider.class));
// grant user6 access right on "getAttribute" method in "Test" component
ObjectProperties ruleProperties = new ObjectProperties("getAttribute");
@@ -339,7 +342,7 @@ public class DefaultAccessControlTest extends TestCase
*/
public void testAuthoriseAccessUpdateMethodWhenAllRightsGrantedOnSpecifiedMethodForAllComponents() throws ConfigurationException
{
- final RuleSet rs = new RuleSet(_eventLogger);
+ final RuleSet rs = new RuleSet(mock(EventLoggerProvider.class));
// grant user8 all rights on method queryNames in all component
rs.grant(1, "user8", Permission.ALLOW, Operation.ALL, ObjectType.METHOD, new ObjectProperties("queryNames"));
@@ -378,7 +381,7 @@ public class DefaultAccessControlTest extends TestCase
*/
public void testAuthoriseAccessUpdateMethodWhenAllRightsGrantedOnAllMethodsInAllComponents() throws ConfigurationException
{
- final RuleSet rs = new RuleSet(_eventLogger);
+ final RuleSet rs = new RuleSet(mock(EventLoggerProvider.class));
// grant user9 all rights on any method in all component
rs.grant(1, "user9", Permission.ALLOW, Operation.ALL, ObjectType.METHOD, new ObjectProperties());
@@ -416,7 +419,7 @@ public class DefaultAccessControlTest extends TestCase
*/
public void testAuthoriseAccessMethodWhenMatchingAccessOperationsAllowedOnSpecifiedComponent() throws ConfigurationException
{
- final RuleSet rs = new RuleSet(_eventLogger);
+ final RuleSet rs = new RuleSet(mock(EventLoggerProvider.class));
// grant user9 all rights on "getAttribute*" methods in Test component
ObjectProperties ruleProperties = new ObjectProperties();
diff --git a/qpid/java/broker-plugins/access-control/src/test/java/org/apache/qpid/server/security/access/plugins/RuleSetTest.java b/qpid/java/broker-plugins/access-control/src/test/java/org/apache/qpid/server/security/access/plugins/RuleSetTest.java
index 47f7f440fa..caf9b2fb61 100644
--- a/qpid/java/broker-plugins/access-control/src/test/java/org/apache/qpid/server/security/access/plugins/RuleSetTest.java
+++ b/qpid/java/broker-plugins/access-control/src/test/java/org/apache/qpid/server/security/access/plugins/RuleSetTest.java
@@ -26,6 +26,7 @@ import java.security.Principal;
import javax.security.auth.Subject;
import org.apache.qpid.server.logging.EventLogger;
+import org.apache.qpid.server.logging.EventLoggerProvider;
import org.apache.qpid.server.security.Result;
import org.apache.qpid.server.security.access.ObjectProperties;
import org.apache.qpid.server.security.access.ObjectType;
@@ -65,7 +66,7 @@ public class RuleSetTest extends QpidTestCase
{
super.setUp();
- _ruleSet = new RuleSet(new EventLogger());
+ _ruleSet = new RuleSet(mock(EventLoggerProvider.class));
}
@Override