admin@glassfish.java.net

ListFileUser Change Review

From: Jason Lee <jason.d.lee_at_oracle.com>
Date: Tue, 24 Aug 2010 17:27:54 -0500

  Does anyone have any issues with the change below. All it does is add
a data structure holding the data returned in the message parts to
extraProperties for easier processing by REST clients. Usage from
asadmin is unaffected.

Index:
security/core/src/main/java/com/sun/enterprise/security/cli/ListFileUser.java
===================================================================
---
security/core/src/main/java/com/sun/enterprise/security/cli/ListFileUser.java
(revision 40064)
+++
security/core/src/main/java/com/sun/enterprise/security/cli/ListFileUser.java
(working copy)
@@ -40,6 +40,7 @@

  package com.sun.enterprise.security.cli;

+import com.sun.enterprise.security.auth.realm.NoSuchUserException;
  import java.util.Enumeration;

  import org.glassfish.api.admin.AdminCommand;
@@ -64,6 +65,12 @@
  import com.sun.enterprise.security.auth.realm.RealmsManager;
  import com.sun.enterprise.util.SystemPropertyConstants;
  import org.glassfish.api.admin.Cluster;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.Properties;
  import org.glassfish.api.admin.RuntimeType;
  import org.glassfish.api.admin.ServerEnvironment;
  import org.glassfish.config.support.CommandTarget;
@@ -193,11 +200,24 @@

          try {
              Enumeration users = fr.getUserNames();
+ List userList = new ArrayList();

              while (users.hasMoreElements()) {
                  final ActionReport.MessagePart part =
report.getTopMessagePart().addChild();
- part.setMessage((String) users.nextElement());
+ String userName = (String) users.nextElement();
+ part.setMessage(userName);
+ Map userMap = new HashMap();
+ userMap.put("name", userName);
+ try {
+ userMap.put("groups",
Collections.list(fr.getGroupNames(userName)));
+ } catch (NoSuchUserException ex) {
+ // This should never be thrown since we just got
the user name from the realm
+ }
+ userList.add(userMap);
              }
+ Properties extraProperties = new Properties();
+ extraProperties.put("users", userList);
+ report.setExtraProperties(extraProperties);
              report.setActionExitCode(ActionReport.ExitCode.SUCCESS);
          } catch (BadRealmException e) {
              report.setMessage(


-- 
Jason Lee
Senior Member of Technical Staff
GlassFish Administration Console
Oracle Corporation
Phone +1 405-216-3193
Blog http://blogs.steeplesoft.com