[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