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

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Mon Apr 21 00:07:59 EDT 2008


Author: anil.saldhana at jboss.com
Date: 2008-04-21 00:07:59 -0400 (Mon, 21 Apr 2008)
New Revision: 72471

Modified:
   projects/security/security-jboss-sx/trunk/jbosssx/src/main/org/jboss/security/ClientLoginModule.java
   projects/security/security-jboss-sx/trunk/jbosssx/src/main/org/jboss/security/SecurityAssociationActions.java
Log:
SECURITY-199: client login module does legacy SA subject ctx push for client side usage

Modified: projects/security/security-jboss-sx/trunk/jbosssx/src/main/org/jboss/security/ClientLoginModule.java
===================================================================
--- projects/security/security-jboss-sx/trunk/jbosssx/src/main/org/jboss/security/ClientLoginModule.java	2008-04-21 01:22:30 UTC (rev 72470)
+++ projects/security/security-jboss-sx/trunk/jbosssx/src/main/org/jboss/security/ClientLoginModule.java	2008-04-21 04:07:59 UTC (rev 72471)
@@ -88,6 +88,8 @@
    
    /** To restore prelogin identity **/
    private SecurityContext cachedSecurityContext;
+   
+   private boolean serverMode = false;
 
    /** Initialize this LoginModule. This checks for the options:
     multi-threaded
@@ -117,6 +119,7 @@
          if(trace)
             log.trace("Enabling multi-threaded mode");
          SecurityAssociationActions.setServer();
+         this.serverMode = true;
       }
 
       flag = (String) options.get("restore-login-identity");
@@ -230,7 +233,12 @@
       
       SecurityAssociationActions.pushSecurityContext(loginPrincipal, 
                        loginCredential, subject, "CLIENT_LOGIN_MODULE");
+      
       // Set the login principal and credential and subject
+      if(!this.serverMode)
+         SecurityAssociationActions.setLegacySecurityAssociationSubjectContext(loginPrincipal, 
+               loginCredential, subject);
+      
       //SecurityAssociationActions.setPrincipalInfo(loginPrincipal, loginCredential, subject);
 
       // Add the login principal to the subject if is not there

Modified: projects/security/security-jboss-sx/trunk/jbosssx/src/main/org/jboss/security/SecurityAssociationActions.java
===================================================================
--- projects/security/security-jboss-sx/trunk/jbosssx/src/main/org/jboss/security/SecurityAssociationActions.java	2008-04-21 01:22:30 UTC (rev 72470)
+++ projects/security/security-jboss-sx/trunk/jbosssx/src/main/org/jboss/security/SecurityAssociationActions.java	2008-04-21 04:07:59 UTC (rev 72471)
@@ -24,6 +24,8 @@
 import java.security.AccessController;
 import java.security.Principal;
 import java.security.PrivilegedAction;
+import java.security.PrivilegedActionException;
+import java.security.PrivilegedExceptionAction;
 
 import javax.security.auth.Subject;
 
@@ -205,4 +207,28 @@
       return credential;
    }
 
-}
+   static void setLegacySecurityAssociationSubjectContext(final Principal principal,
+         final Object credential, final Subject subject)
+   {
+      AccessController.doPrivileged(new PrivilegedAction<Object>()
+      {
+         public Object run()
+         {
+            SecurityAssociation.pushSubjectContext(subject, principal, credential);
+            return null;
+         }
+      });     
+   }
+   
+   static SecurityContext createSecurityContext(final String securityDomain) 
+   throws PrivilegedActionException
+   {
+      return AccessController.doPrivileged(new PrivilegedExceptionAction<SecurityContext>()
+      {
+         public SecurityContext run() throws Exception
+         {
+            return SecurityContextFactory.createSecurityContext(securityDomain);
+         }
+      });
+   }
+}
\ No newline at end of file




More information about the jboss-cvs-commits mailing list