diff options
| author | Robert Godfrey <rgodfrey@apache.org> | 2014-03-08 14:36:06 +0000 |
|---|---|---|
| committer | Robert Godfrey <rgodfrey@apache.org> | 2014-03-08 14:36:06 +0000 |
| commit | 19b2671cbd4af77ac52c222605c09b06cab7ced6 (patch) | |
| tree | 6f650ec2b1ad6bbdd5c64d0a4415b52fa136a41e /qpid/java/broker-plugins | |
| parent | 9d32428fce0ff0631319e2eae21081a2f8f19e9b (diff) | |
| download | qpid-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')
19 files changed, 74 insertions, 48 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 diff --git a/qpid/java/broker-plugins/amqp-0-10-protocol/src/main/java/org/apache/qpid/server/protocol/v0_10/ServerConnection.java b/qpid/java/broker-plugins/amqp-0-10-protocol/src/main/java/org/apache/qpid/server/protocol/v0_10/ServerConnection.java index d2d1fcdf78..a3a80415ac 100644 --- a/qpid/java/broker-plugins/amqp-0-10-protocol/src/main/java/org/apache/qpid/server/protocol/v0_10/ServerConnection.java +++ b/qpid/java/broker-plugins/amqp-0-10-protocol/src/main/java/org/apache/qpid/server/protocol/v0_10/ServerConnection.java @@ -61,7 +61,8 @@ import static org.apache.qpid.server.logging.subjects.LogSubjectFormat.USER_FORM public class ServerConnection extends Connection implements AMQConnectionModel<ServerConnection, ServerSession>, LogSubject, AuthorizationHolder { - private final EventLogger _eventLogger; + + private final Broker _broker; private Runnable _onOpenTask; private AtomicBoolean _logClosed = new AtomicBoolean(false); @@ -85,7 +86,7 @@ public class ServerConnection extends Connection implements AMQConnectionModel<S { _connectionId = connectionId; _authorizedSubject.getPrincipals().add(new ConnectionPrincipal(this)); - _eventLogger = broker.getEventLogger(); + _broker = broker; } public Object getReference() @@ -101,7 +102,7 @@ public class ServerConnection extends Connection implements AMQConnectionModel<S EventLogger getEventLogger() { - return _virtualHost == null ? _eventLogger : _virtualHost.getEventLogger(); + return _virtualHost == null ? _broker.getEventLogger() : _virtualHost.getEventLogger(); } @Override diff --git a/qpid/java/broker-plugins/amqp-0-10-protocol/src/main/java/org/apache/qpid/server/protocol/v0_10/ServerSession.java b/qpid/java/broker-plugins/amqp-0-10-protocol/src/main/java/org/apache/qpid/server/protocol/v0_10/ServerSession.java index 5a17a652ef..c2eacfe6e8 100644 --- a/qpid/java/broker-plugins/amqp-0-10-protocol/src/main/java/org/apache/qpid/server/protocol/v0_10/ServerSession.java +++ b/qpid/java/broker-plugins/amqp-0-10-protocol/src/main/java/org/apache/qpid/server/protocol/v0_10/ServerSession.java @@ -156,7 +156,7 @@ public class ServerSession extends Session { getConnectionModel().closeSession(ServerSession.this, AMQConstant.RESOURCE_ERROR, reason); } - }, getVirtualHost().getEventLogger()); + }, getVirtualHost()); } protected void setState(final State state) diff --git a/qpid/java/broker-plugins/amqp-0-8-protocol/src/main/java/org/apache/qpid/server/protocol/v0_8/AMQChannel.java b/qpid/java/broker-plugins/amqp-0-8-protocol/src/main/java/org/apache/qpid/server/protocol/v0_8/AMQChannel.java index da91be2118..780e7ad199 100644 --- a/qpid/java/broker-plugins/amqp-0-8-protocol/src/main/java/org/apache/qpid/server/protocol/v0_8/AMQChannel.java +++ b/qpid/java/broker-plugins/amqp-0-8-protocol/src/main/java/org/apache/qpid/server/protocol/v0_8/AMQChannel.java @@ -208,7 +208,7 @@ public class AMQChannel<T extends AMQProtocolSession<T>> throw new ConnectionScopedRuntimeException(e); } } - }, getVirtualHost().getEventLogger()); + }, getVirtualHost()); Subject.doAs(_subject, new PrivilegedAction<Object>() { diff --git a/qpid/java/broker-plugins/amqp-0-8-protocol/src/main/java/org/apache/qpid/server/protocol/v0_8/AMQProtocolEngine.java b/qpid/java/broker-plugins/amqp-0-8-protocol/src/main/java/org/apache/qpid/server/protocol/v0_8/AMQProtocolEngine.java index 4aececbcd1..2ebcde199b 100644 --- a/qpid/java/broker-plugins/amqp-0-8-protocol/src/main/java/org/apache/qpid/server/protocol/v0_8/AMQProtocolEngine.java +++ b/qpid/java/broker-plugins/amqp-0-8-protocol/src/main/java/org/apache/qpid/server/protocol/v0_8/AMQProtocolEngine.java @@ -92,7 +92,6 @@ public class AMQProtocolEngine implements ServerProtocolEngine, AMQProtocolSessi private static final int CHANNEL_CACHE_SIZE = 0xff; private static final int REUSABLE_BYTE_BUFFER_CAPACITY = 65 * 1024; private final Port _port; - private EventLogger _eventLogger; private AMQShortString _contextKey; @@ -178,7 +177,6 @@ public class AMQProtocolEngine implements ServerProtocolEngine, AMQProtocolSessi _broker = broker; _port = port; _transport = transport; - _eventLogger = broker.getEventLogger(); _maxNoOfChannels = (Integer)broker.getAttribute(Broker.CONNECTION_SESSION_COUNT_LIMIT); _receivedLock = new ReentrantLock(); _stateManager = new AMQStateManager(broker, this); @@ -1576,7 +1574,7 @@ public class AMQProtocolEngine implements ServerProtocolEngine, AMQProtocolSessi } else { - return _eventLogger; + return _broker.getEventLogger(); } } } diff --git a/qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/HttpManagementUtil.java b/qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/HttpManagementUtil.java index 563e49d43f..0ed97ac3a0 100644 --- a/qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/HttpManagementUtil.java +++ b/qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/HttpManagementUtil.java @@ -137,7 +137,7 @@ public class HttpManagementUtil // Cause the user logon to be logged. session.setAttribute(ATTR_LOGIN_LOGOUT_REPORTER, - new LoginLogoutReporter(subject, getBroker(session.getServletContext()).getEventLogger())); + new LoginLogoutReporter(subject, getBroker(session.getServletContext()))); } public static Subject tryToAuthenticate(HttpServletRequest request, HttpManagementConfiguration managementConfig) diff --git a/qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/session/LoginLogoutReporter.java b/qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/session/LoginLogoutReporter.java index b980b83510..4e55463d45 100644 --- a/qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/session/LoginLogoutReporter.java +++ b/qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/session/LoginLogoutReporter.java @@ -29,6 +29,7 @@ import javax.servlet.http.HttpSessionBindingListener; 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.ManagementConsoleMessages; import org.apache.qpid.server.security.auth.AuthenticatedPrincipal; @@ -42,14 +43,14 @@ public class LoginLogoutReporter implements HttpSessionBindingListener private static final Logger LOGGER = Logger.getLogger(LoginLogoutReporter.class); private final Subject _subject; private final Principal _principal; - private final EventLogger _eventLogger; + private final EventLoggerProvider _eventLoggerProvider; - public LoginLogoutReporter(Subject subject, EventLogger eventLogger) + public LoginLogoutReporter(Subject subject, EventLoggerProvider eventLoggerProvider) { super(); _subject = subject; _principal = AuthenticatedPrincipal.getAuthenticatedPrincipalFromSubject(_subject); - _eventLogger = eventLogger; + _eventLoggerProvider = eventLoggerProvider; } @Override @@ -76,7 +77,7 @@ public class LoginLogoutReporter implements HttpSessionBindingListener @Override public Void run() { - _eventLogger.message(ManagementConsoleMessages.OPEN(_principal.getName())); + getEventLogger().message(ManagementConsoleMessages.OPEN(_principal.getName())); return null; } }); @@ -94,10 +95,14 @@ public class LoginLogoutReporter implements HttpSessionBindingListener @Override public Void run() { - _eventLogger.message(ManagementConsoleMessages.CLOSE(_principal.getName())); + getEventLogger().message(ManagementConsoleMessages.CLOSE(_principal.getName())); return null; } }); } + public EventLogger getEventLogger() + { + return _eventLoggerProvider.getEventLogger(); + } } diff --git a/qpid/java/broker-plugins/management-http/src/test/java/org/apache/qpid/server/management/plugin/session/LoginLogoutReporterTest.java b/qpid/java/broker-plugins/management-http/src/test/java/org/apache/qpid/server/management/plugin/session/LoginLogoutReporterTest.java index 58bd42ef5f..45fa3fabd0 100644 --- a/qpid/java/broker-plugins/management-http/src/test/java/org/apache/qpid/server/management/plugin/session/LoginLogoutReporterTest.java +++ b/qpid/java/broker-plugins/management-http/src/test/java/org/apache/qpid/server/management/plugin/session/LoginLogoutReporterTest.java @@ -29,6 +29,7 @@ import static org.mockito.Mockito.when; import javax.security.auth.Subject; import org.apache.qpid.server.logging.EventLogger; +import org.apache.qpid.server.logging.EventLoggerProvider; import org.apache.qpid.server.logging.LogMessage; import org.apache.qpid.server.logging.MessageLogger; import org.apache.qpid.server.security.auth.AuthenticatedPrincipal; @@ -51,7 +52,9 @@ public class LoginLogoutReporterTest extends TestCase when(_logger.isEnabled()).thenReturn(true); when(_logger.isMessageEnabled(anyString())).thenReturn(true); EventLogger eventLogger = new EventLogger(_logger); - _loginLogoutReport = new LoginLogoutReporter(_subject, eventLogger); + EventLoggerProvider provider = mock(EventLoggerProvider.class); + when(provider.getEventLogger()).thenReturn(eventLogger); + _loginLogoutReport = new LoginLogoutReporter(_subject, provider); } public void testLoginLogged() diff --git a/qpid/java/broker-plugins/management-jmx/src/main/java/org/apache/qpid/server/jmx/JMXManagedObjectRegistry.java b/qpid/java/broker-plugins/management-jmx/src/main/java/org/apache/qpid/server/jmx/JMXManagedObjectRegistry.java index 284909ce56..f359cec694 100644 --- a/qpid/java/broker-plugins/management-jmx/src/main/java/org/apache/qpid/server/jmx/JMXManagedObjectRegistry.java +++ b/qpid/java/broker-plugins/management-jmx/src/main/java/org/apache/qpid/server/jmx/JMXManagedObjectRegistry.java @@ -244,7 +244,7 @@ public class JMXManagedObjectRegistry implements ManagedObjectRegistry _cs.setMBeanServerForwarder(mbsf); // Install a ManagementLogonLogoffReporter so we can report as users logon/logoff - ManagementLogonLogoffReporter jmxManagementUserLogonLogoffReporter = new ManagementLogonLogoffReporter(_broker.getEventLogger(), usernameCachingRmiServer); + ManagementLogonLogoffReporter jmxManagementUserLogonLogoffReporter = new ManagementLogonLogoffReporter(_broker, usernameCachingRmiServer); _cs.addNotificationListener(jmxManagementUserLogonLogoffReporter, jmxManagementUserLogonLogoffReporter, null); // Install the usernameCachingRmiServer as a listener so it may cleanup as clients disconnect diff --git a/qpid/java/broker-plugins/management-jmx/src/main/java/org/apache/qpid/server/jmx/ManagementLogonLogoffReporter.java b/qpid/java/broker-plugins/management-jmx/src/main/java/org/apache/qpid/server/jmx/ManagementLogonLogoffReporter.java index c1792f0227..215b9c77c4 100644 --- a/qpid/java/broker-plugins/management-jmx/src/main/java/org/apache/qpid/server/jmx/ManagementLogonLogoffReporter.java +++ b/qpid/java/broker-plugins/management-jmx/src/main/java/org/apache/qpid/server/jmx/ManagementLogonLogoffReporter.java @@ -31,6 +31,7 @@ import javax.security.auth.Subject; 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.ManagementConsoleMessages; import org.apache.qpid.server.security.auth.AuthenticatedPrincipal; import org.apache.qpid.server.security.auth.jmx.JMXConnectionPrincipal; @@ -42,12 +43,12 @@ import java.security.PrivilegedAction; public class ManagementLogonLogoffReporter implements NotificationListener, NotificationFilter { private static final Logger LOGGER = Logger.getLogger(ManagementLogonLogoffReporter.class); - private final EventLogger _eventLogger; + private final EventLoggerProvider _eventLoggerProvider; private final UsernameAccessor _usernameAccessor; - public ManagementLogonLogoffReporter(EventLogger eventLogger, UsernameAccessor usernameAccessor) + public ManagementLogonLogoffReporter(EventLoggerProvider eventLoggerProvider, UsernameAccessor usernameAccessor) { - _eventLogger = eventLogger; + _eventLoggerProvider = eventLoggerProvider; _usernameAccessor = usernameAccessor; } @@ -109,12 +110,12 @@ public class ManagementLogonLogoffReporter implements NotificationListener, Not { if (JMXConnectionNotification.OPENED.equals(type)) { - _eventLogger.message(ManagementConsoleMessages.OPEN(username)); + getEventLogger().message(ManagementConsoleMessages.OPEN(username)); } else if (JMXConnectionNotification.CLOSED.equals(type) || JMXConnectionNotification.FAILED.equals(type)) { - _eventLogger.message(ManagementConsoleMessages.CLOSE(username)); + getEventLogger().message(ManagementConsoleMessages.CLOSE(username)); } return null; } @@ -133,4 +134,8 @@ public class ManagementLogonLogoffReporter implements NotificationListener, Not return CLOSED.equals(type) || FAILED.equals(type) || OPENED.equals(type); } + public EventLogger getEventLogger() + { + return _eventLoggerProvider.getEventLogger(); + } } diff --git a/qpid/java/broker-plugins/management-jmx/src/test/java/org/apache/qpid/server/jmx/ManagementLogonLogoffReporterTest.java b/qpid/java/broker-plugins/management-jmx/src/test/java/org/apache/qpid/server/jmx/ManagementLogonLogoffReporterTest.java index be5fe1eeca..67bee1e268 100644 --- a/qpid/java/broker-plugins/management-jmx/src/test/java/org/apache/qpid/server/jmx/ManagementLogonLogoffReporterTest.java +++ b/qpid/java/broker-plugins/management-jmx/src/test/java/org/apache/qpid/server/jmx/ManagementLogonLogoffReporterTest.java @@ -34,6 +34,7 @@ import javax.management.remote.JMXConnectionNotification; import javax.security.auth.Subject; import org.apache.qpid.server.logging.EventLogger; +import org.apache.qpid.server.logging.EventLoggerProvider; import org.apache.qpid.server.logging.LogMessage; import org.apache.qpid.server.logging.MessageLogger; @@ -61,7 +62,9 @@ public class ManagementLogonLogoffReporterTest extends TestCase // Enable messaging so we can valid the generated strings when(_messageLogger.isMessageEnabled(anyString())).thenReturn(true); EventLogger eventLogger = new EventLogger(_messageLogger); - _reporter = new ManagementLogonLogoffReporter(eventLogger, _usernameAccessor); + EventLoggerProvider provider = mock(EventLoggerProvider.class); + when(provider.getEventLogger()).thenReturn(eventLogger); + _reporter = new ManagementLogonLogoffReporter(provider, _usernameAccessor); } public void testOpenedNotification() |
