summaryrefslogtreecommitdiff
path: root/qpid/java/broker/src/main/java/org/apache/qpid/server/management/MBeanInvocationHandlerImpl.java
diff options
context:
space:
mode:
Diffstat (limited to 'qpid/java/broker/src/main/java/org/apache/qpid/server/management/MBeanInvocationHandlerImpl.java')
-rw-r--r--qpid/java/broker/src/main/java/org/apache/qpid/server/management/MBeanInvocationHandlerImpl.java17
1 files changed, 11 insertions, 6 deletions
diff --git a/qpid/java/broker/src/main/java/org/apache/qpid/server/management/MBeanInvocationHandlerImpl.java b/qpid/java/broker/src/main/java/org/apache/qpid/server/management/MBeanInvocationHandlerImpl.java
index fccd91ffdb..e9b4d85e66 100644
--- a/qpid/java/broker/src/main/java/org/apache/qpid/server/management/MBeanInvocationHandlerImpl.java
+++ b/qpid/java/broker/src/main/java/org/apache/qpid/server/management/MBeanInvocationHandlerImpl.java
@@ -20,6 +20,7 @@
*/
package org.apache.qpid.server.management;
+import org.apache.qpid.server.configuration.management.ConfigurationManagement;
import org.apache.qpid.server.logging.management.LoggingManagement;
import org.apache.qpid.server.security.access.management.UserManagement;
import org.apache.log4j.Logger;
@@ -38,6 +39,8 @@ import java.lang.reflect.Method;
import java.security.AccessController;
import java.security.Principal;
import java.security.AccessControlContext;
+import java.util.ArrayList;
+import java.util.HashSet;
import java.util.Set;
import java.util.Properties;
@@ -57,6 +60,13 @@ public class MBeanInvocationHandlerImpl implements InvocationHandler
private MBeanServer _mbs;
private static Properties _userRoles = new Properties();
+ private static HashSet<String> _adminOnlyMethods = new HashSet<String>();
+ {
+ _adminOnlyMethods.add(UserManagement.TYPE);
+ _adminOnlyMethods.add(LoggingManagement.TYPE);
+ _adminOnlyMethods.add(ConfigurationManagement.TYPE);
+ }
+
public static MBeanServerForwarder newProxyInstance()
{
final InvocationHandler handler = new MBeanInvocationHandlerImpl();
@@ -155,13 +165,8 @@ public class MBeanInvocationHandlerImpl implements InvocationHandler
{
ObjectName object = (ObjectName) args[0];
- if (UserManagement.TYPE.equals(object.getKeyProperty("type"))
- || LoggingManagement.TYPE.equals(object.getKeyProperty("type")))
- {
- return true;
- }
+ return _adminOnlyMethods.contains(object.getKeyProperty("type"));
}
-
return false;
}