From ec7dcb58b2cc529ccfddd1784b64ed35569f6a9b Mon Sep 17 00:00:00 2001 From: Robert Gemmell Date: Sun, 9 Aug 2009 21:26:30 +0000 Subject: QPID-2032: hash the password in addUser() if connected to a Qpid JMX API 1.1 or below broker. Convert the setPassword() compatibility check to use the API versioning git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@802611 13f79535-47bb-0310-9956-ffa450edef68 --- .../ui/views/users/UserManagementTabControl.java | 25 ++++++++++++++++++---- 1 file changed, 21 insertions(+), 4 deletions(-) (limited to 'java/management/eclipse-plugin') diff --git a/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/views/users/UserManagementTabControl.java b/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/views/users/UserManagementTabControl.java index b474827493..2051beafac 100644 --- a/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/views/users/UserManagementTabControl.java +++ b/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/views/users/UserManagementTabControl.java @@ -294,9 +294,8 @@ public class UserManagementTabControl extends TabControl { char[] password = id.getValue().toCharArray(); - // Retrieve the MBean version. If we have a version 1 UMMBean then - // it expects the password to be sent as a hashed value. - if (_mbean.getVersion() == 1) + // Qpid JMX API 1.1 and below expects the password to be sent as a hashed value. + if (_ApiVersion.lessThanOrEqualTo(1,1)) { try { @@ -768,6 +767,24 @@ public class UserManagementTabControl extends TabControl return; } + char[] passwordChars = password.toCharArray(); + + // Qpid JMX API 1.1 and below expects the password to be sent as a hashed value. + if (_ApiVersion.lessThanOrEqualTo(1,1)) + { + try + { + passwordChars = ViewUtility.getHash(password); + } + catch (Exception hashException) + { + ViewUtility.popupErrorMessage("Set Password", + "Unable to calculate hash for Password:" + + hashException.getMessage()); + return; + } + } + boolean read = readButton.getSelection(); boolean write = writeButton.getSelection(); boolean admin = adminButton.getSelection(); @@ -775,7 +792,7 @@ public class UserManagementTabControl extends TabControl shell.dispose(); try { - boolean result = _ummb.createUser(username, password.toCharArray(), read, write, admin); + boolean result = _ummb.createUser(username, passwordChars, read, write, admin); ViewUtility.operationResultFeedback(result, "Created user", "Failed to create user"); } catch(Exception e5) -- cgit v1.2.1