summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBhupendra Bhusman Bhardwaj <bhupendrab@apache.org>2007-04-18 14:32:02 +0000
committerBhupendra Bhusman Bhardwaj <bhupendrab@apache.org>2007-04-18 14:32:02 +0000
commit5ca1ab359a4e6c30286184752e2e26d693ce3753 (patch)
treebfd17c3bfe2795e986a7e4780f601d183530aab1
parent1527cbb8d51058a5ab33642c72021377c74fa557 (diff)
downloadqpid-python-5ca1ab359a4e6c30286184752e2e26d693ce3753.tar.gz
AMQUserManagementMBean.java - calling relaod within viewUsers method.
Creating user list on management console instead of typing the user name. git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/branches/M2@530034 13f79535-47bb-0310-9956-ffa450edef68
-rw-r--r--java/broker/src/main/java/org/apache/qpid/server/security/access/AMQUserManagementMBean.java2
-rw-r--r--java/broker/src/main/java/org/apache/qpid/server/security/access/UserManagement.java4
-rw-r--r--java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/Constants.java5
-rw-r--r--java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/ManagedBean.java16
-rw-r--r--java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/ServerRegistry.java4
-rw-r--r--java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/jmx/JMXServerRegistry.java11
-rw-r--r--java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/model/OperationData.java8
-rw-r--r--java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/views/OperationTabControl.java48
-rw-r--r--java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/views/ViewUtility.java10
9 files changed, 97 insertions, 11 deletions
diff --git a/java/broker/src/main/java/org/apache/qpid/server/security/access/AMQUserManagementMBean.java b/java/broker/src/main/java/org/apache/qpid/server/security/access/AMQUserManagementMBean.java
index 9daed8cd0f..a43474559d 100644
--- a/java/broker/src/main/java/org/apache/qpid/server/security/access/AMQUserManagementMBean.java
+++ b/java/broker/src/main/java/org/apache/qpid/server/security/access/AMQUserManagementMBean.java
@@ -259,6 +259,8 @@ public class AMQUserManagementMBean extends AMQManagedObject implements UserMana
// Table of users
// Username(string), Access rights Read,Write,Admin(bool,bool,bool)
+ reloadData();
+
if (_userlistDataType == null)
{
_logger.warn("TabluarData not setup correctly");
diff --git a/java/broker/src/main/java/org/apache/qpid/server/security/access/UserManagement.java b/java/broker/src/main/java/org/apache/qpid/server/security/access/UserManagement.java
index a29da431ef..6381213398 100644
--- a/java/broker/src/main/java/org/apache/qpid/server/security/access/UserManagement.java
+++ b/java/broker/src/main/java/org/apache/qpid/server/security/access/UserManagement.java
@@ -97,8 +97,8 @@ public interface UserManagement
*
* @return The result of the operation
*/
- @MBeanOperation(name = "reloadData", description = "Reload the authentication file from disk.")
- boolean reloadData();
+// @MBeanOperation(name = "reloadData", description = "Reload the authentication file from disk.")
+// boolean reloadData();
/**
* View users returns all the users that are currently available to the system.
diff --git a/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/Constants.java b/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/Constants.java
index 091aa43d79..efd4a7e9a6 100644
--- a/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/Constants.java
+++ b/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/Constants.java
@@ -61,6 +61,10 @@ public class Constants
public final static String OPERATION_CREATE_BINDING = "createNewBinding";
public final static String OPERATION_MOVE_MESSAGES = "moveMessages";
+ public final static String OPERATION_CREATEUSER = "createUser";
+ public final static String OPERATION_VIEWUSERS = "viewUsers";
+ public final static String OPERATION_PARAM_USERNAME = "username";
+
public final static String OPERATION_SUCCESSFUL = "Operation successful";
public final static String OPERATION_UNSUCCESSFUL = "Operation unsuccessful";
@@ -69,6 +73,7 @@ public class Constants
public final static String NAVIGATION_ROOT = "Qpid Connections";
public final static String DESCRIPTION = " Description";
+ public final static String ADMIN_MBEAN_TYPE = "UserManagement";
public final static String QUEUE = "Queue";
public final static String CONNECTION ="Connection";
public final static String EXCHANGE = "Exchange";
diff --git a/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/ManagedBean.java b/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/ManagedBean.java
index 38c3e8f413..31825e925d 100644
--- a/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/ManagedBean.java
+++ b/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/ManagedBean.java
@@ -20,6 +20,7 @@
*/
package org.apache.qpid.management.ui;
+import static org.apache.qpid.management.ui.Constants.*;
import java.util.HashMap;
/**
@@ -50,7 +51,7 @@ public abstract class ManagedBean extends ManagedObject
this._properties = properties;
setName(getProperty("name"));
setType(getProperty("type"));
- _virtualHostName = getProperty(Constants.VIRTUAL_HOST);
+ _virtualHostName = getProperty(VIRTUAL_HOST);
}
public String getDomain()
{
@@ -89,7 +90,7 @@ public abstract class ManagedBean extends ManagedObject
public String getVirtualHostName()
{
// To make it work with the broker with no virtual host implementation
- return _virtualHostName == null ? Constants.DEFAULT_VH : _virtualHostName;
+ return _virtualHostName == null ? DEFAULT_VH : _virtualHostName;
}
/**
@@ -106,21 +107,26 @@ public abstract class ManagedBean extends ManagedObject
public boolean isQueue()
{
- return _type.endsWith(Constants.QUEUE);
+ return _type.endsWith(QUEUE);
}
public boolean isConnection()
{
- return _type.endsWith(Constants.CONNECTION);
+ return _type.endsWith(CONNECTION);
}
public boolean isExchange()
{
- return _type.endsWith(Constants.EXCHANGE);
+ return _type.endsWith(EXCHANGE);
}
public boolean isTempQueue()
{
return (isQueue() && getName().startsWith("tmp_"));
}
+
+ public boolean isAdmin()
+ {
+ return _type.endsWith(ADMIN_MBEAN_TYPE);
+ }
}
diff --git a/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/ServerRegistry.java b/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/ServerRegistry.java
index e2a0de9cb1..313e143df5 100644
--- a/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/ServerRegistry.java
+++ b/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/ServerRegistry.java
@@ -128,6 +128,10 @@ public abstract class ServerRegistry
return _virtualHosts;
}
+ public abstract void setUserList(List<String> list);
+
+ public abstract List<String> getUsernames();
+
public abstract void addManagedObject(ManagedBean key);
public abstract List<ManagedBean> getMBeans();
diff --git a/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/jmx/JMXServerRegistry.java b/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/jmx/JMXServerRegistry.java
index 3aa190b9e0..816c479cf9 100644
--- a/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/jmx/JMXServerRegistry.java
+++ b/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/jmx/JMXServerRegistry.java
@@ -61,6 +61,7 @@ public class JMXServerRegistry extends ServerRegistry
private JMXConnector _jmxc = null;
private MBeanServerConnection _mbsc = null;
+ private List<String> _usersList;
// When an mbean gets removed from mbean server, then the notification listener
// will add that mbean in this list.
private List<ManagedBean> _mbeansToBeRemoved = new ArrayList<ManagedBean>();
@@ -566,6 +567,16 @@ public class JMXServerRegistry extends ServerRegistry
}
return connections;
}
+
+ public void setUserList(List<String> list)
+ {
+ _usersList = list;
+ }
+
+ public List<String> getUsernames()
+ {
+ return _usersList;
+ }
public ClientNotificationListener getNotificationListener()
{
diff --git a/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/model/OperationData.java b/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/model/OperationData.java
index 9b6750c21a..2b83645942 100644
--- a/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/model/OperationData.java
+++ b/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/model/OperationData.java
@@ -80,5 +80,13 @@ public class OperationData
this._returnType = returnType;
}
+ public boolean isReturnTypeBoolean()
+ {
+ return (_returnType.equals("boolean") || _returnType.equals("java.lang.Boolean"));
+ }
+ public boolean isReturnTypeVoid()
+ {
+ return (_returnType.equals("void") || _returnType.equals("java.lang.Void"));
+ }
} \ No newline at end of file
diff --git a/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/views/OperationTabControl.java b/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/views/OperationTabControl.java
index 76e84e7684..2ac037e4f0 100644
--- a/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/views/OperationTabControl.java
+++ b/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/views/OperationTabControl.java
@@ -20,10 +20,16 @@
*/
package org.apache.qpid.management.ui.views;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Collections;
import java.util.HashMap;
import java.util.List;
import java.util.Map.Entry;
+import javax.management.openmbean.CompositeData;
+import javax.management.openmbean.TabularDataSupport;
+
import static org.apache.qpid.management.ui.Constants.*;
import org.apache.qpid.management.ui.ApplicationRegistry;
import org.apache.qpid.management.ui.ManagedBean;
@@ -271,6 +277,15 @@ public class OperationTabControl extends TabControl
{
items = EXCHANGE_TYPE_VALUES;
}
+ else if (_mbean.isAdmin() && param.getName().equals(OPERATION_PARAM_USERNAME)
+ && !_opData.getName().equals(OPERATION_CREATEUSER))
+ {
+ List<String> list = ApplicationRegistry.getServerRegistry(_mbean).getUsernames();
+ if (list != null && !list.isEmpty())
+ {
+ items = list.toArray(new String[0]);
+ }
+ }
if (items != null)
{
@@ -633,6 +648,17 @@ public class OperationTabControl extends TabControl
return;
}
+ // Custom code for Admin mbean operation
+ /* These custome codes here are to make the GUI look more user friendly.
+ * Here we are adding the users to a list, which will be used to list username to be selected on
+ * pages like "delete user", "set password" instead of typing the username
+ */
+ if (_mbean.isAdmin() && _opData.getName().equals(OPERATION_VIEWUSERS))
+ {
+ ApplicationRegistry.getServerRegistry(_mbean).setUserList(extractUserList(result));
+ }
+ // end of custom code
+
// Some mbeans have only "type" and no "name".
String title = _mbean.getType();
if (_mbean.getName() != null && _mbean.getName().length() != 0)
@@ -640,11 +666,11 @@ public class OperationTabControl extends TabControl
title = _mbean.getName();
}
- if (_opData.getReturnType().equals("void") || _opData.getReturnType().equals("java.lang.Void"))
+ if (_opData.isReturnTypeVoid())
{
ViewUtility.popupInfoMessage(title, OPERATION_SUCCESSFUL);
}
- else if (_opData.getReturnType().equals("boolean") || _opData.getReturnType().equals("java.lang.Boolean"))
+ else if (_opData.isReturnTypeBoolean())
{
boolean success = Boolean.parseBoolean(result.toString());
String message = success ? OPERATION_SUCCESSFUL : OPERATION_UNSUCCESSFUL;
@@ -664,6 +690,24 @@ public class OperationTabControl extends TabControl
}
+ private List<String> extractUserList(Object result)
+ {
+ if (!(result instanceof TabularDataSupport))
+ {
+ return null;
+ }
+
+ TabularDataSupport tabularData = (TabularDataSupport)result;
+ Collection<CompositeData> records = tabularData.values();
+ List<String> list = new ArrayList<String>();
+ for (CompositeData data : records)
+ {
+ list.add(data.get(USERNAME).toString());
+ }
+ Collections.sort(list);
+ return list;
+ }
+
/**
* Listener class for the operation parameters widget
*/
diff --git a/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/views/ViewUtility.java b/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/views/ViewUtility.java
index 2449cfaca9..9b5cddd342 100644
--- a/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/views/ViewUtility.java
+++ b/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/views/ViewUtility.java
@@ -596,8 +596,14 @@ public class ViewUtility
{
if (data1.getKey() instanceof List)
{
- String str1 = ((List)data1.getKey()).get(0).toString();
- String str2 = ((List)data2.getKey()).get(0).toString();
+ Object obj1 = ((List)data1.getKey()).get(0);
+ Object obj2 = ((List)data2.getKey()).get(0);
+ String str1 = obj1.toString();
+ String str2 = obj2.toString();
+ if (obj1 instanceof String)
+ {
+ return str1.compareTo(str2);
+ }
try
{