diff options
| author | Alex Rudyy <orudyy@apache.org> | 2013-08-02 17:03:34 +0000 |
|---|---|---|
| committer | Alex Rudyy <orudyy@apache.org> | 2013-08-02 17:03:34 +0000 |
| commit | 51f0474be31fa69eb4ad64d9417d088ca9ded884 (patch) | |
| tree | bfa0572d7eb894f1b01847fb1571608c9851f275 /qpid/java/broker | |
| parent | a7d9672cc9a81ca78b87d21da75a9ffb164ca60c (diff) | |
| download | qpid-python-51f0474be31fa69eb4ad64d9417d088ca9ded884.tar.gz | |
QPID-5037: Move log viewer into a separate tab and add abilities to download logs and filter log entries in the logs table
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1509778 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'qpid/java/broker')
6 files changed, 23 insertions, 3 deletions
diff --git a/qpid/java/broker/etc/broker_example.acl b/qpid/java/broker/etc/broker_example.acl index 6cab707a89..29dca90f15 100644 --- a/qpid/java/broker/etc/broker_example.acl +++ b/qpid/java/broker/etc/broker_example.acl @@ -76,6 +76,9 @@ ACL ALLOW-LOG webadmins UPDATE METHOD # authorise operations changing broker model ACL ALLOW-LOG webadmins CONFIGURE BROKER +# authorise operations to view and download broker logs +ACL ALLOW webadmins ACCESS_LOGS BROKER + # at the moment only the following UPDATE METHOD rules are supported by web management console #ACL ALLOW-LOG webadmins UPDATE METHOD component="VirtualHost.Queue" name="moveMessages" #ACL ALLOW-LOG webadmins UPDATE METHOD component="VirtualHost.Queue" name="copyMessages" diff --git a/qpid/java/broker/src/main/java/org/apache/qpid/server/configuration/BrokerProperties.java b/qpid/java/broker/src/main/java/org/apache/qpid/server/configuration/BrokerProperties.java index 0b31f5b81a..fb382a8ca9 100644 --- a/qpid/java/broker/src/main/java/org/apache/qpid/server/configuration/BrokerProperties.java +++ b/qpid/java/broker/src/main/java/org/apache/qpid/server/configuration/BrokerProperties.java @@ -54,6 +54,7 @@ public class BrokerProperties public static final String PROPERTY_QPID_HOME = "QPID_HOME"; public static final String PROPERTY_QPID_WORK = "QPID_WORK"; + public static final String PROPERTY_LOG_RECORDS_BUFFER_SIZE = "qpid.broker_log_records_buffer_size"; private BrokerProperties() { diff --git a/qpid/java/broker/src/main/java/org/apache/qpid/server/logging/LogRecorder.java b/qpid/java/broker/src/main/java/org/apache/qpid/server/logging/LogRecorder.java index 5528a05360..dfffbdbb5f 100644 --- a/qpid/java/broker/src/main/java/org/apache/qpid/server/logging/LogRecorder.java +++ b/qpid/java/broker/src/main/java/org/apache/qpid/server/logging/LogRecorder.java @@ -25,15 +25,17 @@ import org.apache.log4j.spi.ErrorHandler; import org.apache.log4j.spi.Filter; import org.apache.log4j.spi.LoggingEvent; import org.apache.log4j.spi.ThrowableInformation; +import org.apache.qpid.server.configuration.BrokerProperties; public class LogRecorder implements Appender, Iterable<LogRecorder.Record> { + private static final int DEFAULT_BUFFER_SIZE = 4096; private ErrorHandler _errorHandler; private Filter _filter; private String _name; private long _recordId; - private final int _bufferSize = 4096; + private final int _bufferSize = Integer.getInteger(BrokerProperties.PROPERTY_LOG_RECORDS_BUFFER_SIZE, DEFAULT_BUFFER_SIZE); private final int _mask = _bufferSize - 1; private Record[] _records = new Record[_bufferSize]; diff --git a/qpid/java/broker/src/main/java/org/apache/qpid/server/security/SecurityManager.java b/qpid/java/broker/src/main/java/org/apache/qpid/server/security/SecurityManager.java index 09e79d3ae9..931368cb97 100755 --- a/qpid/java/broker/src/main/java/org/apache/qpid/server/security/SecurityManager.java +++ b/qpid/java/broker/src/main/java/org/apache/qpid/server/security/SecurityManager.java @@ -44,6 +44,7 @@ import static org.apache.qpid.server.security.access.ObjectType.METHOD; import static org.apache.qpid.server.security.access.ObjectType.QUEUE; import static org.apache.qpid.server.security.access.ObjectType.USER; import static org.apache.qpid.server.security.access.ObjectType.VIRTUALHOST; +import static org.apache.qpid.server.security.access.Operation.ACCESS_LOGS; import static org.apache.qpid.server.security.access.Operation.BIND; import static org.apache.qpid.server.security.access.Operation.CONFIGURE; import static org.apache.qpid.server.security.access.Operation.CONSUME; @@ -629,4 +630,15 @@ public class SecurityManager implements ConfigurationChangeListener }); } + public boolean authoriseLogsAccess() + { + return checkAllPlugins(new AccessCheck() + { + Result allowed(AccessControl plugin) + { + return plugin.authorise(ACCESS_LOGS, BROKER, ObjectProperties.EMPTY); + } + }); + } + } diff --git a/qpid/java/broker/src/main/java/org/apache/qpid/server/security/access/ObjectType.java b/qpid/java/broker/src/main/java/org/apache/qpid/server/security/access/ObjectType.java index 048d9a8fc9..9016205d1c 100644 --- a/qpid/java/broker/src/main/java/org/apache/qpid/server/security/access/ObjectType.java +++ b/qpid/java/broker/src/main/java/org/apache/qpid/server/security/access/ObjectType.java @@ -19,6 +19,7 @@ package org.apache.qpid.server.security.access; import static org.apache.qpid.server.security.access.Operation.ACCESS; +import static org.apache.qpid.server.security.access.Operation.ACCESS_LOGS; import static org.apache.qpid.server.security.access.Operation.BIND; import static org.apache.qpid.server.security.access.Operation.CONFIGURE; import static org.apache.qpid.server.security.access.Operation.CONSUME; @@ -50,7 +51,7 @@ public enum ObjectType METHOD(Operation.ALL, ACCESS, UPDATE), USER(Operation.ALL, CREATE, DELETE, UPDATE), GROUP(Operation.ALL, CREATE, DELETE, UPDATE), - BROKER(Operation.ALL, CONFIGURE); + BROKER(Operation.ALL, CONFIGURE, ACCESS_LOGS); private EnumSet<Operation> _actions; diff --git a/qpid/java/broker/src/main/java/org/apache/qpid/server/security/access/Operation.java b/qpid/java/broker/src/main/java/org/apache/qpid/server/security/access/Operation.java index df5289b7bf..db5b8fba11 100644 --- a/qpid/java/broker/src/main/java/org/apache/qpid/server/security/access/Operation.java +++ b/qpid/java/broker/src/main/java/org/apache/qpid/server/security/access/Operation.java @@ -33,7 +33,8 @@ public enum Operation DELETE, PURGE, UPDATE, - CONFIGURE; + CONFIGURE, + ACCESS_LOGS; public static Operation parse(String text) { |
