[jboss-cvs] JBossAS SVN: r62470 - projects/security/security-jboss-sx/trunk/src/main/org/jboss/security.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Sat Apr 21 02:44:16 EDT 2007


Author: anil.saldhana at jboss.com
Date: 2007-04-21 02:44:16 -0400 (Sat, 21 Apr 2007)
New Revision: 62470

Modified:
   projects/security/security-jboss-sx/trunk/src/main/org/jboss/security/SecurityAssociationActions.java
Log:
security context work

Modified: projects/security/security-jboss-sx/trunk/src/main/org/jboss/security/SecurityAssociationActions.java
===================================================================
--- projects/security/security-jboss-sx/trunk/src/main/org/jboss/security/SecurityAssociationActions.java	2007-04-21 06:43:29 UTC (rev 62469)
+++ projects/security/security-jboss-sx/trunk/src/main/org/jboss/security/SecurityAssociationActions.java	2007-04-21 06:44:16 UTC (rev 62470)
@@ -28,6 +28,8 @@
 import javax.security.auth.Subject;
 
 import org.jboss.security.SecurityAssociation;
+import org.jboss.security.plugins.SecurityContextAssociation;
+import org.jboss.security.plugins.SecurityContextFactory;
 
 /** A PrivilegedAction implementation for setting the SecurityAssociation
  * principal and credential
@@ -50,7 +52,14 @@
       }
       public Object run()
       {
-         SecurityAssociation.pushSubjectContext(subject, principal, credential);
+         //SecurityAssociation.pushSubjectContext(subject, principal, credential);
+         SecurityContext sc = SecurityContextAssociation.getSecurityContext();
+         if(sc == null)
+         {
+            sc = SecurityContextFactory.createSecurityContext(principal, 
+                                             credential, subject, "CLIENT_PROXY");
+         }
+         SecurityContextAssociation.setSecurityContext(sc);
          credential = null;
          principal = null;
          subject = null;
@@ -61,7 +70,8 @@
    {
       public Object run()
       {
-         SecurityAssociation.popSubjectContext();
+         //SecurityAssociation.popSubjectContext();
+         SecurityContextAssociation.clearSecurityContext();
          return null;
       }
    }
@@ -80,6 +90,7 @@
       public Object run()
       {
          SecurityAssociation.clear();
+         SecurityContextAssociation.clearSecurityContext();
          return null;
       }
    }
@@ -110,6 +121,44 @@
          return credential;
       }
    }
+   
+   static void setSecurityContext(final SecurityContext sc)
+   {
+      AccessController.doPrivileged(new PrivilegedAction()
+      { 
+         public Object run()
+         {
+            SecurityContextAssociation.setSecurityContext(sc); 
+            return null;
+         }
+      });
+   }
+   
+   static SecurityContext getSecurityContext()
+   {
+      return (SecurityContext)AccessController.doPrivileged(new PrivilegedAction()
+      { 
+         public Object run()
+         {
+            return SecurityContextAssociation.getSecurityContext(); 
+         }
+      });
+   }
+   
+   static void pushSecurityContext(final Principal p, final Object cred, 
+         final Subject subject, final String securityDomain)
+   {
+      AccessController.doPrivileged(new PrivilegedAction()
+      { 
+         public Object run()
+         {
+            SecurityContext sc = SecurityContextFactory.createSecurityContext(p, cred, 
+                  subject, securityDomain);
+            SecurityContextAssociation.setSecurityContext(sc);
+            return null;
+         }
+      });
+   }
 
    static void setPrincipalInfo(Principal principal, Object credential, Subject subject)
    {




More information about the jboss-cvs-commits mailing list