[jboss-cvs] JBossAS SVN: r58041 - projects/security/trunk/src/main/org/jboss/security/mapping/providers

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Thu Nov 2 23:44:53 EST 2006


Author: anil.saldhana at jboss.com
Date: 2006-11-02 23:44:52 -0500 (Thu, 02 Nov 2006)
New Revision: 58041

Modified:
   projects/security/trunk/src/main/org/jboss/security/mapping/providers/MappingProviderUtil.java
Log:
additional utility methods

Modified: projects/security/trunk/src/main/org/jboss/security/mapping/providers/MappingProviderUtil.java
===================================================================
--- projects/security/trunk/src/main/org/jboss/security/mapping/providers/MappingProviderUtil.java	2006-11-03 04:44:15 UTC (rev 58040)
+++ projects/security/trunk/src/main/org/jboss/security/mapping/providers/MappingProviderUtil.java	2006-11-03 04:44:52 UTC (rev 58041)
@@ -25,6 +25,7 @@
 import java.security.Principal;
 import java.security.acl.Group; 
 import java.util.Enumeration;
+import java.util.HashSet;
 import java.util.StringTokenizer;
 
 import org.jboss.logging.Logger;
@@ -43,6 +44,19 @@
    public static Logger log = Logger.getLogger(MappingProviderUtil.class);
    
    /**
+    * Add principals passed via an enumeration into a group
+    * @param grp
+    * @param en
+    * @return
+    */
+   public static Group addPrincipals(Group grp, Enumeration<? extends Principal> en)
+   {
+      while(en.hasMoreElements())
+         grp.addMember(en.nextElement()); 
+      return grp;
+   }
+   
+   /**
     * Add the roles into the Group
     * @param roles Group of roles
     * @param addRoles
@@ -58,6 +72,7 @@
       return roles;
    }
    
+   
    /**
     * Given a comma-separated list of roles, return a string array
     * @param str
@@ -75,7 +90,7 @@
          tokens[i] = st.nextToken();
       }
       return tokens;
-   }
+   } 
 
    /**
     * Instantiate a Principal representing a principal
@@ -100,6 +115,25 @@
    }
    
    /**
+    * Remove all the principals from the group
+    * @param grp
+    * @return
+    */
+   public static Group removePrincipals(Group grp)
+   {
+      HashSet<Principal> removeset = new HashSet<Principal>();
+      Enumeration<? extends Principal> en = grp.members();
+      while(en.hasMoreElements())
+      {
+         removeset.add(en.nextElement());
+      }
+      
+      for(Principal p:removeset)
+         grp.removeMember(p);
+      return grp;
+   }
+   
+   /**
     * Remove the roles from the Group
     * @param roles Group of roles
     * @param removeRoles
@@ -114,6 +148,17 @@
          roles.removeMember(instantiatePrincipal(pClass,str));
       }
       return roles;
+   } 
+   
+   /**
+    * Replace the principals in first group with those in the second
+    * @param fg
+    * @param sg
+    * @return
+    */
+   public static Group replacePrincipals(Group fg, Group sg)
+   { 
+      return addPrincipals( removePrincipals(fg),sg.members());
    }
    
    private static Class getPrincipalClass(Group roles)




More information about the jboss-cvs-commits mailing list