[jboss-cvs] JBossAS SVN: r74168 - in projects/security/security-jboss-sx/trunk/jbosssx/src: tests/org/jboss/test/security/client and 1 other directory.
jboss-cvs-commits at lists.jboss.org
jboss-cvs-commits at lists.jboss.org
Thu Jun 5 17:08:58 EDT 2008
Author: anil.saldhana at jboss.com
Date: 2008-06-05 17:08:58 -0400 (Thu, 05 Jun 2008)
New Revision: 74168
Modified:
projects/security/security-jboss-sx/trunk/jbosssx/src/main/org/jboss/security/client/JBossSecurityClient.java
projects/security/security-jboss-sx/trunk/jbosssx/src/tests/org/jboss/test/security/client/JBossSecurityClientTestCase.java
Log:
SECURITY-232: JBossSecurityClient handling of SecurityContext
Modified: projects/security/security-jboss-sx/trunk/jbosssx/src/main/org/jboss/security/client/JBossSecurityClient.java
===================================================================
--- projects/security/security-jboss-sx/trunk/jbosssx/src/main/org/jboss/security/client/JBossSecurityClient.java 2008-06-05 21:08:20 UTC (rev 74167)
+++ projects/security/security-jboss-sx/trunk/jbosssx/src/main/org/jboss/security/client/JBossSecurityClient.java 2008-06-05 21:08:58 UTC (rev 74168)
@@ -30,9 +30,8 @@
import org.jboss.security.SecurityContextAssociation;
import org.jboss.security.SecurityContextFactory;
import org.jboss.security.SimplePrincipal;
+
-//$Id$
-
/**
* Implementation of the SecurityClient contract <br/>
*
@@ -51,6 +50,8 @@
{
protected LoginContext lc = null;
+ private SecurityContext previousSecurityContext = null;
+
@Override
protected void peformSASLLogin()
{
@@ -73,26 +74,25 @@
else
up = (Principal) userPrincipal;
- SecurityContext sc = SecurityContextAssociation.getSecurityContext();
- if(sc == null)
+ previousSecurityContext = SecurityContextAssociation.getSecurityContext();
+
+ SecurityContext sc = null;
+ try
{
- try
- {
- sc = SecurityContextFactory.createSecurityContext("CLIENT");
- }
- catch (Exception e)
- {
- throw new RuntimeException(e);
- }
- sc.getUtil().createSubjectInfo(up, credential, null);
+ sc = SecurityContextFactory.createSecurityContext("CLIENT");
}
+ catch (Exception e)
+ {
+ throw new RuntimeException(e);
+ }
+ sc.getUtil().createSubjectInfo(up, credential, null);
SecurityContextAssociation.setSecurityContext(sc);
}
@Override
protected void cleanUp()
{
- SecurityContextAssociation.clearSecurityContext();
+ SecurityContextAssociation.setSecurityContext(previousSecurityContext);
if(lc != null)
try
{
Modified: projects/security/security-jboss-sx/trunk/jbosssx/src/tests/org/jboss/test/security/client/JBossSecurityClientTestCase.java
===================================================================
--- projects/security/security-jboss-sx/trunk/jbosssx/src/tests/org/jboss/test/security/client/JBossSecurityClientTestCase.java 2008-06-05 21:08:20 UTC (rev 74167)
+++ projects/security/security-jboss-sx/trunk/jbosssx/src/tests/org/jboss/test/security/client/JBossSecurityClientTestCase.java 2008-06-05 21:08:58 UTC (rev 74168)
@@ -23,14 +23,13 @@
import org.jboss.security.SecurityContext;
import org.jboss.security.SecurityContextAssociation;
+import org.jboss.security.SecurityContextFactory;
import org.jboss.security.SubjectInfo;
import org.jboss.security.client.JBossSecurityClient;
import org.jboss.security.client.SecurityClient;
import org.jboss.security.client.SecurityClientFactory;
import org.jboss.test.AbstractJBossSXTest;
-
-//$Id$
-
+
/**
* Test the JBoss Security Client
* @author Anil.Saldhana at redhat.com
@@ -60,4 +59,26 @@
assertEquals("Cred==pass", "pass", sc.getUtil().getCredential());
}
+ public void testClientWithExistingSecurityContext() throws Exception
+ {
+ SecurityContext prev = SecurityContextFactory.createSecurityContext("TEST");
+ SecurityContextAssociation.setSecurityContext(prev);
+
+ SecurityClient client = SecurityClientFactory.getSecurityClient();
+ assertEquals("JBossSecurityClient", JBossSecurityClient.class,client.getClass());
+ client.setSimple("anil", "pass");
+ client.login();
+
+ SecurityContext sc = SecurityContextAssociation.getSecurityContext();
+ assertNotNull("SecurityContext is not null", sc);
+ SubjectInfo si = sc.getSubjectInfo();
+ assertNotNull("SubjectInfo is not null", si);
+ assertNotNull("Principal is not null", sc.getUtil().getUserPrincipal());
+ assertEquals("Principal==anil", "anil", sc.getUtil().getUserPrincipal().getName());
+ assertNotNull("Cred is not null", sc.getUtil().getCredential());
+ assertEquals("Cred==pass", "pass", sc.getUtil().getCredential());
+
+ client.logout();
+ assertEquals(prev, SecurityContextAssociation.getSecurityContext());
+ }
}
\ No newline at end of file
More information about the jboss-cvs-commits
mailing list