summaryrefslogtreecommitdiff
path: root/java/broker/src
diff options
context:
space:
mode:
Diffstat (limited to 'java/broker/src')
-rw-r--r--java/broker/src/main/java/org/apache/qpid/server/management/MBeanInvocationHandlerImpl.java46
-rw-r--r--java/broker/src/main/java/org/apache/qpid/server/security/access/management/AMQUserManagementMBean.java10
2 files changed, 10 insertions, 46 deletions
diff --git a/java/broker/src/main/java/org/apache/qpid/server/management/MBeanInvocationHandlerImpl.java b/java/broker/src/main/java/org/apache/qpid/server/management/MBeanInvocationHandlerImpl.java
index 74ca0399a1..0ee5763d91 100644
--- a/java/broker/src/main/java/org/apache/qpid/server/management/MBeanInvocationHandlerImpl.java
+++ b/java/broker/src/main/java/org/apache/qpid/server/management/MBeanInvocationHandlerImpl.java
@@ -38,7 +38,6 @@ import javax.management.MBeanOperationInfo;
import javax.management.JMException;
import javax.management.NotificationListener;
import javax.management.Notification;
-import javax.management.OperationsException;
import javax.security.auth.Subject;
import java.lang.reflect.InvocationHandler;
import java.lang.reflect.Proxy;
@@ -140,8 +139,6 @@ public class MBeanInvocationHandlerImpl implements InvocationHandler, Notificati
Principal principal = principals.iterator().next();
String identity = principal.getName();
-
- checkCompatibility(proxy, method, args);
if (isAdminMethod(args))
{
@@ -171,49 +168,6 @@ public class MBeanInvocationHandlerImpl implements InvocationHandler, Notificati
throw new SecurityException("Access denied");
}
- private void checkCompatibility(final Object proxy, final Method method, final Object[] args) throws Throwable
- {
- if (args[0] instanceof ObjectName && method.getName().equals("invoke"))
- {
- //get the ObjectName and invoked Method name
- final ObjectName objectName = (ObjectName) args[0];
-
- final String mbeanMethod = (args.length > 1) ? (String) args[1] : null;
- if (mbeanMethod == null)
- {
- return;
- }
-
- //UserManagement MBean compatibility checks
- if(objectName.getKeyProperty("type").equals(UserManagement.TYPE))
- {
- if (mbeanMethod.equals("createUser") || mbeanMethod.equals("setPassword"))
- {
- //get the provided argument values and types for the method
- if( args.length > 2 && args[2] != null && args[2] instanceof Object[] &&
- args.length > 3 && args[3] != null && args[3] instanceof String[])
- {
- //check the 2nd argument value is a char[]
- final Object[] argValues = (Object[]) args[2];
- final String[] argTypes = (String[]) args[3];
-
- final Object actualValue = (argValues.length > 1) ? argValues[1] : null;
- final String expectedType = (argTypes.length > 1) ? (String) argTypes[1] : null;
-
- if (expectedType != null && expectedType.equals("[C"))
- {
- if (actualValue != null && actualValue instanceof String)
- {
- throw new OperationsException("Incorrect parameter type provided.\n" +
- "Please upgrade to a newer management console release to correct this issue.");
- }
- }
- }
- }
- }
- }
- }
-
private boolean isAdminMethod(Object[] args)
{
if (args[0] instanceof ObjectName)
diff --git a/java/broker/src/main/java/org/apache/qpid/server/security/access/management/AMQUserManagementMBean.java b/java/broker/src/main/java/org/apache/qpid/server/security/access/management/AMQUserManagementMBean.java
index 45ab57ca90..5a2965cb32 100644
--- a/java/broker/src/main/java/org/apache/qpid/server/security/access/management/AMQUserManagementMBean.java
+++ b/java/broker/src/main/java/org/apache/qpid/server/security/access/management/AMQUserManagementMBean.java
@@ -108,6 +108,11 @@ public class AMQUserManagementMBean extends AMQManagedObject implements UserMana
return UserManagement.TYPE;
}
+ public boolean setPassword(String username, String password)
+ {
+ return setPassword(username, password.toCharArray());
+ }
+
public boolean setPassword(String username, char[] password)
{
try
@@ -196,6 +201,11 @@ public class AMQUserManagementMBean extends AMQManagedObject implements UserMana
return true;
}
+
+ public boolean createUser(String username, String password, boolean read, boolean write, boolean admin)
+ {
+ return createUser(username, password.toCharArray(), read, write, admin);
+ }
public boolean createUser(String username, char[] password, boolean read, boolean write, boolean admin)
{