[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