[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