[jboss-cvs] JBossAS SVN: r67079 - in projects/metadata/trunk/src: test/java/org/jboss/test/metadata/ejb and 1 other directory.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Wed Nov 14 12:05:35 EST 2007


Author: anil.saldhana at jboss.com
Date: 2007-11-14 12:05:34 -0500 (Wed, 14 Nov 2007)
New Revision: 67079

Modified:
   projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/jboss/JBossAssemblyDescriptorMetaData.java
   projects/metadata/trunk/src/test/java/org/jboss/test/metadata/ejb/JBoss5xEverythingUnitTestCase.java
Log:
add a principal versus roles map in the JBossAssemblyDescriptorMetaData

Modified: projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/jboss/JBossAssemblyDescriptorMetaData.java
===================================================================
--- projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/jboss/JBossAssemblyDescriptorMetaData.java	2007-11-14 16:59:47 UTC (rev 67078)
+++ projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/jboss/JBossAssemblyDescriptorMetaData.java	2007-11-14 17:05:34 UTC (rev 67079)
@@ -22,6 +22,9 @@
 package org.jboss.metadata.ejb.jboss;
 
 import java.util.Collections;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.Map;
 import java.util.Set;
 
 import org.jboss.metadata.common.ejb.IAssemblyDescriptorMetaData;
@@ -346,6 +349,31 @@
          return Collections.emptySet();
       return securityRoles.getSecurityRoleNamesByPrincipal(userName);
    }
+   
+   /**
+    * Generate a Map of Principal keyed against a set of role names
+    * @return map of principal names as keys and set of role name strings as values
+    */
+   public Map<String,Set<String>> getPrincipalVersusRolesMap()
+   {
+	  Map<String,Set<String>> principalRolesMap = new HashMap<String,Set<String>>();
+	  Set<String> roleNameSet = securityRoles.keySet();
+	  for(String rolename: roleNameSet)
+	  {
+		  SecurityRoleMetaData srm = (SecurityRoleMetaData) securityRoles.get(rolename);
+	      Set<String> principals = srm.getPrincipals();
+	      for(String pr:principals)
+	      {
+	         Set<String> roleset = (Set<String>)principalRolesMap.get(pr);
+	         if(roleset == null)
+	           roleset = new HashSet<String>();
+	         if(!roleset.contains(rolename))
+	           roleset.add(rolename);
+	         principalRolesMap.put(pr, roleset);
+	      } 
+	  }  
+	  return principalRolesMap;
+   }
 
    /**
     * Get the messageDestinations.

Modified: projects/metadata/trunk/src/test/java/org/jboss/test/metadata/ejb/JBoss5xEverythingUnitTestCase.java
===================================================================
--- projects/metadata/trunk/src/test/java/org/jboss/test/metadata/ejb/JBoss5xEverythingUnitTestCase.java	2007-11-14 16:59:47 UTC (rev 67078)
+++ projects/metadata/trunk/src/test/java/org/jboss/test/metadata/ejb/JBoss5xEverythingUnitTestCase.java	2007-11-14 17:05:34 UTC (rev 67079)
@@ -23,6 +23,7 @@
 
 import java.util.Collection;
 import java.util.HashSet;
+import java.util.Map;
 import java.util.Set;
 
 import junit.framework.Test;
@@ -1189,6 +1190,25 @@
       assertId("assembly-descriptor", assemblyDescriptorMetaData);
       assertSecurityRoles(2, assemblyDescriptorMetaData.getSecurityRoles());
       assertMessageDestinations(2, assemblyDescriptorMetaData.getMessageDestinations());
+      Map<String,Set<String>> prmap = assemblyDescriptorMetaData.getPrincipalVersusRolesMap();
+      assertNotNull(prmap);
+      //Check the keys
+      assertTrue(prmap.containsKey("securityRole1Principal1"));
+      assertTrue(prmap.containsKey("securityRole1Principal2"));
+      assertTrue(prmap.containsKey("securityRole2Principal1"));
+      assertTrue(prmap.containsKey("securityRole2Principal2"));
+      //Check the values
+      assertTrue(prmap.get("securityRole1Principal1").size() == 1);
+      assertTrue(prmap.get("securityRole1Principal1").contains("securityRoleRef1RoleLink"));
+      
+      assertTrue(prmap.get("securityRole1Principal2").size() == 1);
+      assertTrue(prmap.get("securityRole1Principal2").contains("securityRoleRef1RoleLink"));
+      
+      assertTrue(prmap.get("securityRole2Principal1").size() == 1);
+      assertTrue(prmap.get("securityRole2Principal1").contains("securityRoleRef2RoleLink"));
+      
+      assertTrue(prmap.get("securityRole2Principal2").size() == 1);
+      assertTrue(prmap.get("securityRole2Principal2").contains("securityRoleRef2RoleLink"));
    }
    
    @Override




More information about the jboss-cvs-commits mailing list