[jboss-cvs] JBossAS SVN: r70701 - 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
Mon Mar 10 17:02:07 EDT 2008


Author: anil.saldhana at jboss.com
Date: 2008-03-10 17:02:06 -0400 (Mon, 10 Mar 2008)
New Revision: 70701

Modified:
   projects/ejb3/trunk/core/src/main/java/org/jboss/ejb3/security/RunAsSecurityInterceptorFactory.java
Log:
 consider the run as principal from jboss.xml

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	2008-03-10 21:00:47 UTC (rev 70700)
+++ projects/ejb3/trunk/core/src/main/java/org/jboss/ejb3/security/RunAsSecurityInterceptorFactory.java	2008-03-10 21:02:06 UTC (rev 70701)
@@ -36,6 +36,8 @@
 import org.jboss.ejb3.tx.NullInterceptor;
 import org.jboss.logging.Logger;
 import org.jboss.metadata.ejb.jboss.JBossAssemblyDescriptorMetaData;
+import org.jboss.metadata.ejb.jboss.JBossEnterpriseBeanMetaData;
+import org.jboss.metadata.ejb.spec.SecurityIdentityMetaData;
 import org.jboss.security.AuthenticationManager;
 import org.jboss.security.RealmMapping;
 import org.jboss.security.RunAsIdentity;
@@ -53,12 +55,22 @@
    private static final Logger log = Logger.getLogger(RunAsSecurityInterceptorFactory.class);
   
    protected RunAsIdentity getRunAsIdentity(EJBContainer container)
-   {
+   {      
       RunAs runAs = (RunAs) container.resolveAnnotation(RunAs.class);
       if (runAs == null)
          return null;
       
       String runAsPrincipal = runAs.value(); 
+      
+      JBossEnterpriseBeanMetaData jbEnterpriseBeanMetaData = container.getXml();
+      if(jbEnterpriseBeanMetaData != null)
+      {
+         SecurityIdentityMetaData securityIdentity = jbEnterpriseBeanMetaData.getSecurityIdentity();
+         if(securityIdentity.isUseCallerId())
+            return null; //Overriden in xml 
+         runAsPrincipal = securityIdentity.getRunAsPrincipal(); 
+      }
+      
       Set<String> extraRoles = new HashSet<String>();
       
       JBossAssemblyDescriptorMetaData ad = container.getAssemblyDescriptor();
@@ -68,17 +80,13 @@
       }
       
       return new RunAsIdentity(runAs.value(), runAsPrincipal, extraRoles);
+
    }
 
 
    public Object createPerClass(Advisor advisor)
    {
       EJBContainer container = EJBContainer.getEJBContainer(advisor);
-      RunAsIdentity runAsIdentity = getRunAsIdentity(container);
-      /*if (runAsIdentity == null)
-      {
-         return new NullInterceptor();
-      }*/
 
       Object domain = null;
       try
@@ -99,10 +107,6 @@
       Interceptor interceptor = new NullInterceptor();
       if (domain != null)
       {
-         AuthenticationManager manager = (AuthenticationManager) domain;
-         RealmMapping mapping = (RealmMapping) domain;
-         //interceptor = new RunAsSecurityInterceptor(manager, mapping, getRunAsIdentity(container));
-         
          interceptor = new RunAsSecurityInterceptorv2(container, getRunAsIdentity(container));
       }
       return interceptor;




More information about the jboss-cvs-commits mailing list