[jboss-cvs] JBossAS SVN: r92505 - projects/ejb3/trunk/core/src/main/java/org/jboss/ejb3/security.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Tue Aug 18 06:39:38 EDT 2009


Author: wolfc
Date: 2009-08-18 06:39:38 -0400 (Tue, 18 Aug 2009)
New Revision: 92505

Modified:
   projects/ejb3/trunk/core/src/main/java/org/jboss/ejb3/security/RunAsSecurityInterceptorFactory.java
Log:
EJBTHREE-1892: reverted 67100 and fixed the role mapping

Modified: projects/ejb3/trunk/core/src/main/java/org/jboss/ejb3/security/RunAsSecurityInterceptorFactory.java
===================================================================
--- projects/ejb3/trunk/core/src/main/java/org/jboss/ejb3/security/RunAsSecurityInterceptorFactory.java	2009-08-18 09:28:37 UTC (rev 92504)
+++ projects/ejb3/trunk/core/src/main/java/org/jboss/ejb3/security/RunAsSecurityInterceptorFactory.java	2009-08-18 10:39:38 UTC (rev 92505)
@@ -33,6 +33,7 @@
 import org.jboss.aop.advice.AspectFactory;
 import org.jboss.aop.advice.Interceptor;
 import org.jboss.ejb3.EJBContainer;
+import org.jboss.ejb3.annotation.RunAsPrincipal;
 import org.jboss.ejb3.annotation.SecurityDomain;
 import org.jboss.ejb3.tx.NullInterceptor;
 import org.jboss.logging.Logger;
@@ -59,7 +60,11 @@
       if (runAs == null)
          return null;
       
-      String runAsPrincipal = runAs.value(); 
+      RunAsPrincipal rap = (RunAsPrincipal) container.resolveAnnotation(RunAsPrincipal.class);
+      String runAsPrincipal = null;
+      if (rap != null) 
+         runAsPrincipal = rap.value();
+      
       Set<String> extraRoles = new HashSet<String>();
       
       JBossEnterpriseBeanMetaData jbEnterpriseBeanMetaData = container.getXml();
@@ -67,12 +72,18 @@
       {
          SecurityIdentityMetaData securityIdentity = jbEnterpriseBeanMetaData.getSecurityIdentity();
          if(securityIdentity.isUseCallerId())
-            return null; //Overriden in xml 
-         runAsPrincipal = securityIdentity.getRunAsPrincipal();  
-         Map<String,Set<String>> principalVsRoleMap = 
-        	 jbEnterpriseBeanMetaData.getSecurityRolesPrincipalVersusRolesMap(); 
-         extraRoles = principalVsRoleMap.get(runAsPrincipal);  
+            return null; //Overriden in xml
+         String s = securityIdentity.getRunAsPrincipal();
+         if(s != null && s.length() != 0)
+            runAsPrincipal = s;  
       }
+      if(runAsPrincipal != null)
+      {
+         Map<String,Set<String>> principalVsRoleMap = jbEnterpriseBeanMetaData.getSecurityRolesPrincipalVersusRolesMap();
+         Set<String> roles = principalVsRoleMap.get(runAsPrincipal);
+         if(roles != null)
+            extraRoles.addAll(roles);
+      }
        
       JBossAssemblyDescriptorMetaData ad = container.getAssemblyDescriptor();
       if(ad != null && runAsPrincipal != null)




More information about the jboss-cvs-commits mailing list