[jboss-cvs] JBossAS SVN: r64740 - trunk/aspects/src/main/org/jboss/aspects/security.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Tue Aug 21 11:51:43 EDT 2007


Author: anil.saldhana at jboss.com
Date: 2007-08-21 11:51:43 -0400 (Tue, 21 Aug 2007)
New Revision: 64740

Modified:
   trunk/aspects/src/main/org/jboss/aspects/security/SecurityActions.java
   trunk/aspects/src/main/org/jboss/aspects/security/SecurityClientInterceptor.java
Log:
JBAS-4423:ejb3 security alignment

Modified: trunk/aspects/src/main/org/jboss/aspects/security/SecurityActions.java
===================================================================
--- trunk/aspects/src/main/org/jboss/aspects/security/SecurityActions.java	2007-08-21 15:51:15 UTC (rev 64739)
+++ trunk/aspects/src/main/org/jboss/aspects/security/SecurityActions.java	2007-08-21 15:51:43 UTC (rev 64740)
@@ -655,6 +655,18 @@
       AccessController.doPrivileged(action);
    }
    
+   static SecurityContext createSecurityContext()
+   {
+      return (SecurityContext) AccessController.doPrivileged(new PrivilegedAction()
+      {
+
+         public Object run()
+         { 
+            return SecurityContextFactory.createSecurityContext("CLIENT");
+         }
+      });
+   }
+   
    static SecurityContext getSecurityContext()
    {
       GetSecurityContextAction action = new GetSecurityContextAction();

Modified: trunk/aspects/src/main/org/jboss/aspects/security/SecurityClientInterceptor.java
===================================================================
--- trunk/aspects/src/main/org/jboss/aspects/security/SecurityClientInterceptor.java	2007-08-21 15:51:15 UTC (rev 64739)
+++ trunk/aspects/src/main/org/jboss/aspects/security/SecurityClientInterceptor.java	2007-08-21 15:51:43 UTC (rev 64740)
@@ -24,6 +24,8 @@
 import java.security.Principal;
 import java.io.ObjectStreamException;
 
+import org.jboss.security.SecurityContext;
+
 /** 
  * The AuthenticationInterceptor authenticates the caller.
  *
@@ -50,7 +52,23 @@
       Object credential = SecurityActions.getCredential();
       if (credential != null) invocation.getMetaData().addMetaData("security", "credential", credential);
       
-      return invocation.invokeNext();
+      //Get the security context
+      SecurityContext sc = SecurityActions.getSecurityContext();
+      if(sc == null)
+      {
+         sc = SecurityActions.createSecurityContext();
+         SecurityActions.setSecurityContext(sc);
+      }
+      invocation.getMetaData().addMetaData("security", "context", sc);
+      try
+      { 
+         return invocation.invokeNext();  
+      }
+      finally
+      {
+         //Place the previous context
+         SecurityActions.setSecurityContext(sc);
+      }
    }
 
    Object readResolve() throws ObjectStreamException {




More information about the jboss-cvs-commits mailing list