[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