[jboss-cvs] JBossAS SVN: r58852 - trunk/ejb3/src/main/org/jboss/ejb3/metamodel

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Tue Dec 5 14:57:48 EST 2006


Author: anil.saldhana at jboss.com
Date: 2006-12-05 14:57:47 -0500 (Tue, 05 Dec 2006)
New Revision: 58852

Modified:
   trunk/ejb3/src/main/org/jboss/ejb3/metamodel/AssemblyDescriptor.java
   trunk/ejb3/src/main/org/jboss/ejb3/metamodel/EnterpriseBean.java
   trunk/ejb3/src/main/org/jboss/ejb3/metamodel/JBossDDObjectFactory.java
Log:
merge from JEE_TCK branch

Modified: trunk/ejb3/src/main/org/jboss/ejb3/metamodel/AssemblyDescriptor.java
===================================================================
--- trunk/ejb3/src/main/org/jboss/ejb3/metamodel/AssemblyDescriptor.java	2006-12-05 19:57:21 UTC (rev 58851)
+++ trunk/ejb3/src/main/org/jboss/ejb3/metamodel/AssemblyDescriptor.java	2006-12-05 19:57:47 UTC (rev 58852)
@@ -20,13 +20,19 @@
 * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
 */ 
 package org.jboss.ejb3.metamodel;
-
+ 
 import java.util.ArrayList;
 import java.util.Collection;
 import java.util.HashMap;
+import java.util.HashSet;
+import java.util.Iterator;
 import java.util.List;
+import java.util.Map;
+import java.util.Set;
+
 import org.jboss.logging.Logger;
-
+ 
+import org.jboss.metadata.SecurityRoleMetaData;
 import org.jboss.metamodel.descriptor.SecurityRole;
 
 /**
@@ -34,6 +40,7 @@
  * schema
  *
  * @author <a href="mailto:bdecoste at jboss.com">William DeCoste</a>
+ * @author Anil.Saldhana at jboss.org
  * @version <tt>$Revision$</tt>
  */
 public class AssemblyDescriptor
@@ -41,6 +48,8 @@
    private static final Logger log = Logger.getLogger(AssemblyDescriptor.class);
 
    private List securityRoles = new ArrayList();
+   
+   private Map<String, SecurityRoleMetaData> securityRoleMetaData = new HashMap();
 
    private List methodPermissions = new ArrayList();
 
@@ -167,6 +176,60 @@
    {
       containerTransactions.add(containerTransaction);
    }
+   
+   public void addSecurityRoleMetaData(SecurityRoleMetaData srm)
+   {
+      this.securityRoleMetaData.put(srm.getRoleName(), srm);
+   }
+   
+   public Set getSecurityRolesGivenPrincipal(String userName)
+   {
+      HashSet roleNames = new HashSet();
+      Iterator it = securityRoleMetaData.values().iterator();
+      while (it.hasNext())
+      {
+         SecurityRoleMetaData srMetaData = (SecurityRoleMetaData) it.next();
+         if (srMetaData.getPrincipals().contains(userName))
+            roleNames.add(srMetaData.getRoleName());
+      }
+      return roleNames;
+   }
+   
+   /**
+    * Get a map of principals versus set of roles
+    * that may be configured by the user at the deployment level
+    * @return
+    */
+   public Map getPrincipalVersusRolesMap()
+   {
+      Map principalRolesMap = null;
+      
+      Iterator iter = securityRoleMetaData.keySet().iterator();
+      while(iter.hasNext())
+      {
+         if(principalRolesMap == null)
+            principalRolesMap = new HashMap(); 
+         String rolename = (String)iter.next();
+         SecurityRoleMetaData srm = (SecurityRoleMetaData) securityRoleMetaData.get(rolename);
+         Iterator principalIter = srm.getPrincipals().iterator();
+         while(principalIter.hasNext())
+         {
+            String pr = (String)principalIter.next(); 
+            Set roleset = (Set)principalRolesMap.get(pr);
+            if(roleset == null)
+               roleset = new HashSet();
+            if(!roleset.contains(rolename))
+               roleset.add(rolename);
+            principalRolesMap.put(pr, roleset);
+         } 
+      } 
+      return principalRolesMap;
+   }
+   
+   public Map<String,SecurityRoleMetaData> getSecurityRoleMetaData()
+   {
+      return this.securityRoleMetaData;
+   }
 
    public String toString()
    {

Modified: trunk/ejb3/src/main/org/jboss/ejb3/metamodel/EnterpriseBean.java
===================================================================
--- trunk/ejb3/src/main/org/jboss/ejb3/metamodel/EnterpriseBean.java	2006-12-05 19:57:21 UTC (rev 58851)
+++ trunk/ejb3/src/main/org/jboss/ejb3/metamodel/EnterpriseBean.java	2006-12-05 19:57:47 UTC (rev 58852)
@@ -30,11 +30,9 @@
 
 import org.jboss.metamodel.descriptor.EnvironmentRefGroup;
 import org.jboss.metamodel.descriptor.InjectionTarget;
-import org.jboss.metamodel.descriptor.MessageDestinationRef;
-import org.jboss.metamodel.descriptor.PersistenceUnitRef;
+import org.jboss.metamodel.descriptor.MessageDestinationRef; 
 import org.jboss.metamodel.descriptor.ResourceEnvRef;
-import org.jboss.metamodel.descriptor.ResourceRef;
-import org.jboss.metamodel.descriptor.PersistenceContextRef;
+import org.jboss.metamodel.descriptor.ResourceRef; 
 
 /**
  * Represents an EJB element of the ejb-jar.xml deployment descriptor for the
@@ -185,8 +183,15 @@
 
    public void setRunAsPrincipal(String principal)
    {
-      if (securityIdentity != null)
-         securityIdentity.setRunAsPrincipal(principal);
+      /**
+       * A case where the RunAs is defined in annotations and the 
+       * RunAsPrincipal is specified in jboss.xml
+       */
+      if (securityIdentity == null)
+      {
+         securityIdentity = new SecurityIdentity();
+      }
+      securityIdentity.setRunAsPrincipal(principal);
    }
 
    public void setCallByValue(boolean callByValue)

Modified: trunk/ejb3/src/main/org/jboss/ejb3/metamodel/JBossDDObjectFactory.java
===================================================================
--- trunk/ejb3/src/main/org/jboss/ejb3/metamodel/JBossDDObjectFactory.java	2006-12-05 19:57:21 UTC (rev 58851)
+++ trunk/ejb3/src/main/org/jboss/ejb3/metamodel/JBossDDObjectFactory.java	2006-12-05 19:57:47 UTC (rev 58852)
@@ -22,7 +22,7 @@
 package org.jboss.ejb3.metamodel;
 
 import java.io.IOException;
-import java.net.URL;
+import java.net.URL; 
 
 import javax.management.ObjectName;
 
@@ -37,23 +37,24 @@
 import org.jboss.xb.binding.UnmarshallingContext;
 import org.xml.sax.Attributes;
 
+import org.jboss.metadata.SecurityRoleMetaData;
 import org.jboss.metamodel.descriptor.DDObjectFactory;
 import org.jboss.metamodel.descriptor.EjbLocalRef;
-import org.jboss.metamodel.descriptor.EjbRef;
-import org.jboss.metamodel.descriptor.EnvEntry;
+import org.jboss.metamodel.descriptor.EjbRef; 
 import org.jboss.metamodel.descriptor.InjectionTarget;
 import org.jboss.metamodel.descriptor.JndiRef;
 import org.jboss.metamodel.descriptor.MessageDestinationRef;
 import org.jboss.metamodel.descriptor.NameValuePair;
 import org.jboss.metamodel.descriptor.ResourceEnvRef;
-import org.jboss.metamodel.descriptor.ResourceRef;
-import org.jboss.metamodel.descriptor.SecurityRole;
+import org.jboss.metamodel.descriptor.ResourceRef; 
 import org.jboss.metamodel.descriptor.ServiceRef;
+import org.jboss.metamodel.descriptor.ServiceRef;
 
 /**
  * Represents the jboss.xml deployment descriptor for the 2.1 schema
  *
  * @author <a href="mailto:bdecoste at jboss.com">William DeCoste</a>
+ * @author Anil.Saldhana at jboss.com
  * @version <tt>$Revision$</tt>
  */
 public class JBossDDObjectFactory extends DDObjectFactory
@@ -283,6 +284,10 @@
       {
          child = new MessageDestination();
       }
+      if (localName.equals("security-role"))
+      { 
+         child = new SecurityRoleMetaData("dummy_to_be_replaced_in_setValue"); 
+      }
 
       return child;
    }
@@ -431,7 +436,13 @@
       parent.addMessageDestination(destination);
    }
    
+   public void addChild(AssemblyDescriptor parent, SecurityRoleMetaData srm,
+         UnmarshallingContext navigator, String namespaceURI, String localName)
+   {
+      parent.addSecurityRoleMetaData(srm);
+   }
    
+   
    /**
     * Called when parsing character is complete.
     */
@@ -662,8 +673,7 @@
     */
    public void addChild(EnterpriseBeans parent, EnterpriseBeans ejbs,
                         UnmarshallingContext navigator, String namespaceURI, String localName)
-   {
-
+   { 
    }
 
    /**
@@ -1108,6 +1118,22 @@
       }
    }
    
+   /**
+    * Called when a child element with simple content is read for DD.
+    */
+   public void setValue(SecurityRoleMetaData srm, UnmarshallingContext navigator,
+                        String namespaceURI, String localName, String value)
+   {
+      if (localName.equals("role-name"))
+      {
+         srm.setRoleName(getValue(localName, value)); 
+      }
+      else if (localName.equals("principal-name"))
+      {
+         srm.addPrincipalName(getValue(localName, value));
+      } 
+   }
+   
    protected String getValue(String name, String value)
    {
       if (value.startsWith("${") && value.endsWith("}"))
@@ -1128,6 +1154,5 @@
       }
       
       return value;
-   }
-
+   } 
 }




More information about the jboss-cvs-commits mailing list