[jboss-cvs] JBossAS SVN: r62467 - 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:41:38 EDT 2007


Author: anil.saldhana at jboss.com
Date: 2007-04-21 02:41:38 -0400 (Sat, 21 Apr 2007)
New Revision: 62467

Modified:
   projects/security/security-jboss-sx/trunk/src/main/org/jboss/security/ClientLoginModule.java
Log:
Security Context

Modified: projects/security/security-jboss-sx/trunk/src/main/org/jboss/security/ClientLoginModule.java
===================================================================
--- projects/security/security-jboss-sx/trunk/src/main/org/jboss/security/ClientLoginModule.java	2007-04-21 06:41:14 UTC (rev 62466)
+++ projects/security/security-jboss-sx/trunk/src/main/org/jboss/security/ClientLoginModule.java	2007-04-21 06:41:38 UTC (rev 62467)
@@ -65,6 +65,7 @@
  
  @author <a href="mailto:on at ibis.odessa.ua">Oleg Nitz</a>
  @author Scott.Stark at jboss.org
+ @author Anil.Saldhana at redhat.com
  */
 public class ClientLoginModule implements LoginModule
 {
@@ -84,6 +85,9 @@
     */
    private boolean restoreLoginIdentity;
    private boolean trace;
+   
+   /** To restore prelogin identity **/
+   private SecurityContext cachedSecurityContext;
 
    /** Initialize this LoginModule. This checks for the options:
     multi-threaded
@@ -221,8 +225,13 @@
    {
       if( trace )
          log.trace("commit, subject="+subject);
+      //Cache the existing security context
+      this.cachedSecurityContext = SecurityAssociationActions.getSecurityContext();
+      
+      SecurityAssociationActions.pushSecurityContext(loginPrincipal, 
+                       loginCredential, subject, "CLIENT_LOGIN_MODULE");
       // Set the login principal and credential and subject
-      SecurityAssociationActions.setPrincipalInfo(loginPrincipal, loginCredential, subject);
+      //SecurityAssociationActions.setPrincipalInfo(loginPrincipal, loginCredential, subject);
 
       // Add the login principal to the subject if is not there
       Set principals = subject.getPrincipals();
@@ -240,12 +249,14 @@
          log.trace("abort");
       if( restoreLoginIdentity == true )
       {
-         SecurityAssociationActions.popPrincipalInfo();
+         //SecurityAssociationActions.popPrincipalInfo();
+         SecurityAssociationActions.setSecurityContext(this.cachedSecurityContext);
       }
       else
       {
          // Clear the entire security association stack
-         SecurityAssociationActions.clear();         
+         //SecurityAssociationActions.clear();  
+         SecurityAssociationActions.setSecurityContext(null);
       }
 
       return true;
@@ -257,12 +268,14 @@
          log.trace("logout");
       if( restoreLoginIdentity == true )
       {
-         SecurityAssociationActions.popPrincipalInfo();
+         //SecurityAssociationActions.popPrincipalInfo();
+         SecurityAssociationActions.setSecurityContext(this.cachedSecurityContext);
       }
       else
       {
          // Clear the entire security association stack
-         SecurityAssociationActions.clear();         
+         //SecurityAssociationActions.clear();  
+         SecurityAssociationActions.setSecurityContext(null);         
       }
       Set principals = subject.getPrincipals();
       principals.remove(loginPrincipal);




More information about the jboss-cvs-commits mailing list