[jboss-cvs] JBossAS SVN: r61961 - projects/security/security-jboss-sx/trunk/src/main/org/jboss/security/jacc.
jboss-cvs-commits at lists.jboss.org
jboss-cvs-commits at lists.jboss.org
Sun Apr 1 00:45:21 EDT 2007
Author: anil.saldhana at jboss.com
Date: 2007-04-01 00:45:21 -0400 (Sun, 01 Apr 2007)
New Revision: 61961
Modified:
projects/security/security-jboss-sx/trunk/src/main/org/jboss/security/jacc/SubjectPolicyContextHandler.java
Log:
update to security context work
Modified: projects/security/security-jboss-sx/trunk/src/main/org/jboss/security/jacc/SubjectPolicyContextHandler.java
===================================================================
--- projects/security/security-jboss-sx/trunk/src/main/org/jboss/security/jacc/SubjectPolicyContextHandler.java 2007-04-01 04:44:48 UTC (rev 61960)
+++ projects/security/security-jboss-sx/trunk/src/main/org/jboss/security/jacc/SubjectPolicyContextHandler.java 2007-04-01 04:45:21 UTC (rev 61961)
@@ -31,7 +31,12 @@
import org.jboss.security.RunAsIdentity;
import org.jboss.security.SecurityAssociation;
+import org.jboss.security.SecurityContext;
+import org.jboss.security.SubjectInfo;
+import org.jboss.security.plugins.SecurityContextAssociation;
+import static org.jboss.security.SecurityConstants.*;
+
/** A PolicyContextHandler for the current authenticated Subject.
* @author Scott.Stark at jboss.org
* @version $Revison:$
@@ -44,7 +49,7 @@
private static class GetSubjectAction implements PrivilegedAction
{
static PrivilegedAction ACTION = new GetSubjectAction();
- public Object run()
+ /*public Object run()
{
Subject theSubject = null;
Subject activeSubject = SecurityAssociation.getSubject();
@@ -77,7 +82,49 @@
}
}
return theSubject;
- }
+ }*/
+
+ public Object run()
+ {
+ Subject theSubject = null;
+ SecurityContext sc = SecurityContextAssociation.getSecurityContext();
+ if(sc != null)
+ {
+ SubjectInfo si = sc.getSubjectInfo();
+
+ if(si != null)
+ {
+ Subject activeSubject = si.getAuthenticatedSubject();
+ RunAsIdentity callerRunAsIdentity = (RunAsIdentity)sc.getUtil().get(sc, CALLER_RAI_IDENTIFIER);
+
+ if( activeSubject != null )
+ {
+ Set principalsSet = null;
+ if( callerRunAsIdentity == null )
+ {
+ principalsSet = activeSubject.getPrincipals();
+ }
+ else
+ {
+ principalsSet = callerRunAsIdentity.getPrincipalsSet();
+ }
+
+ theSubject = new Subject(true, principalsSet,
+ activeSubject.getPublicCredentials(),
+ activeSubject.getPrivateCredentials());
+ }
+ else
+ {
+ if( callerRunAsIdentity != null )
+ {
+ Set principalsSet = callerRunAsIdentity.getPrincipalsSet();
+ theSubject = new Subject(true, principalsSet, EMPTY_SET, EMPTY_SET);
+ }
+ }
+ }
+ }
+ return theSubject;
+ }
}
public Object getContext(String key, Object data)
More information about the jboss-cvs-commits
mailing list