[jboss-cvs] JBossAS SVN: r78109 - trunk/server/src/main/org/jboss/ejb.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Fri Sep 5 17:52:52 EDT 2008


Author: anil.saldhana at jboss.com
Date: 2008-09-05 17:52:52 -0400 (Fri, 05 Sep 2008)
New Revision: 78109

Modified:
   trunk/server/src/main/org/jboss/ejb/MessageDrivenContainer.java
   trunk/server/src/main/org/jboss/ejb/SecurityActions.java
Log:
JBAS-5931: ensure no security context for MDB

Modified: trunk/server/src/main/org/jboss/ejb/MessageDrivenContainer.java
===================================================================
--- trunk/server/src/main/org/jboss/ejb/MessageDrivenContainer.java	2008-09-05 21:35:21 UTC (rev 78108)
+++ trunk/server/src/main/org/jboss/ejb/MessageDrivenContainer.java	2008-09-05 21:52:52 UTC (rev 78109)
@@ -40,6 +40,7 @@
 
 import org.jboss.invocation.Invocation;
 import org.jboss.metadata.MessageDrivenMetaData;
+import org.jboss.security.SecurityContext;
 import org.jboss.util.NullArgumentException;
 
 /**
@@ -405,8 +406,19 @@
     */
    public Object internalInvoke(Invocation mi) throws Exception
    {
-      // Invoke through interceptors
-      return getInterceptor().invoke(mi); 
+      SecurityContext cachedContext = null;
+      try
+      {
+         cachedContext = SecurityActions.getSecurityContext();
+         //For message driven beans, there is no security context
+         SecurityActions.setSecurityContext(null);
+         // Invoke through interceptors
+         return getInterceptor().invoke(mi);
+      }
+      finally
+      {
+         SecurityActions.setSecurityContext(cachedContext);
+      }
    }
 
 

Modified: trunk/server/src/main/org/jboss/ejb/SecurityActions.java
===================================================================
--- trunk/server/src/main/org/jboss/ejb/SecurityActions.java	2008-09-05 21:35:21 UTC (rev 78108)
+++ trunk/server/src/main/org/jboss/ejb/SecurityActions.java	2008-09-05 21:52:52 UTC (rev 78109)
@@ -404,4 +404,16 @@
          }
       });
    }
+   
+   static void setSecurityContext(final SecurityContext securityContext) 
+   { 
+      AccessController.doPrivileged(new PrivilegedAction<SecurityContext>()
+      {
+         public SecurityContext run() 
+         {
+            SecurityContextAssociation.setSecurityContext(securityContext);
+            return null;
+         }
+      });
+   }
 }




More information about the jboss-cvs-commits mailing list