[jboss-cvs] JBossAS SVN: r70835 - in branches/JBPAPP_4_2_0_GA_CP/ejb3/src/test/org/jboss/ejb3/test/jaccpropagation: servlets and 1 other directory.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Thu Mar 13 15:01:46 EDT 2008


Author: bdecoste
Date: 2008-03-13 15:01:45 -0400 (Thu, 13 Mar 2008)
New Revision: 70835

Modified:
   branches/JBPAPP_4_2_0_GA_CP/ejb3/src/test/org/jboss/ejb3/test/jaccpropagation/Client.java
   branches/JBPAPP_4_2_0_GA_CP/ejb3/src/test/org/jboss/ejb3/test/jaccpropagation/servlets/EJBServlet.java
Log:
SA propagation test - work in progress

Modified: branches/JBPAPP_4_2_0_GA_CP/ejb3/src/test/org/jboss/ejb3/test/jaccpropagation/Client.java
===================================================================
--- branches/JBPAPP_4_2_0_GA_CP/ejb3/src/test/org/jboss/ejb3/test/jaccpropagation/Client.java	2008-03-13 18:48:56 UTC (rev 70834)
+++ branches/JBPAPP_4_2_0_GA_CP/ejb3/src/test/org/jboss/ejb3/test/jaccpropagation/Client.java	2008-03-13 19:01:45 UTC (rev 70835)
@@ -21,9 +21,11 @@
  */
 package org.jboss.ejb3.test.jaccpropagation;
 
+import java.security.Principal;
 import javax.naming.InitialContext;
 import javax.security.auth.Subject;
 import javax.security.auth.login.LoginContext;
+import javax.servlet.http.HttpServletRequest;
 
 import org.jboss.logging.Logger;
 import org.jboss.security.SecurityAssociation;
@@ -34,14 +36,30 @@
 public class Client
 {
    private static final Logger log = Logger.getLogger(Client.class);
+   private static final String SESSION_PRINCIPAL = "SessionPrincipal";
+   private static final String SESSION_CREDENTIAL = "SessionCredential";
    
    public static final String JAAS_MODE = "JAAS";
    public static final String SA_MODE = "SA";
    
+   HttpServletRequest request;
+   
+   public Client()
+   {
+      
+   }
+   
+   public Client(HttpServletRequest request)
+   {
+      this.request = request;
+   }
+   
    public String processSecurityAssociationRequest() throws Exception
    {
       String result = "";
       
+      Object credential = "password".toCharArray();
+      
       InitialContext ctx = new InitialContext();
       SessionRemote session = (SessionRemote)ctx.lookup("SessionBean/remote");
       
@@ -52,8 +70,8 @@
   
       CustomPrincipalImpl customPrincipal = (CustomPrincipalImpl)SecurityAssociation.getPrincipal();
       customPrincipal.setCustomRole("CustomRole1");
-      Object credential = "password".toCharArray();
       
+      
       Subject newSubject = new Subject(); 
       
       SecurityAssociation.pushSubjectContext(newSubject, customPrincipal, credential);
@@ -80,6 +98,9 @@
       
       // set "org.jboss.security.SecurityAssociation.ThreadLocal" property to true to use ThreadLocal 
       // vs. default InheritableThreadLocal
+      request.getSession().setAttribute(SESSION_PRINCIPAL, SecurityAssociation.getPrincipal());
+      request.getSession().setAttribute(SESSION_CREDENTIAL, credential);
+      
       EJBInvoker invoker = new EJBInvoker();
       new Thread(invoker).start();
       Thread.sleep(1000);
@@ -132,6 +153,23 @@
             InitialContext ctx = new InitialContext();
             SessionRemote session = (SessionRemote)ctx.lookup("SessionBean/remote");
 
+            log.info("!!! threaded before session principal " + SecurityAssociation.getPrincipal() );
+            log.info("!!! threaded before session subject " + SecurityAssociation.getSubject());
+            
+            try
+            {
+               session.testCustomPrincipal2();
+            } 
+            catch (javax.ejb.EJBAccessException e)
+            {
+               //should be caught when ThreadLocal is used
+            }
+            
+            Principal sessionPrincipal = (Principal)request.getSession().getAttribute(SESSION_PRINCIPAL);
+            Object credential = request.getSession().getAttribute(SESSION_CREDENTIAL);
+            SecurityAssociation.setPrincipal(sessionPrincipal);
+            SecurityAssociation.setCredential(credential);
+            
             log.info("!!! threaded before principal " + SecurityAssociation.getPrincipal() );
             log.info("!!! threaded before subject " + SecurityAssociation.getSubject());
             

Modified: branches/JBPAPP_4_2_0_GA_CP/ejb3/src/test/org/jboss/ejb3/test/jaccpropagation/servlets/EJBServlet.java
===================================================================
--- branches/JBPAPP_4_2_0_GA_CP/ejb3/src/test/org/jboss/ejb3/test/jaccpropagation/servlets/EJBServlet.java	2008-03-13 18:48:56 UTC (rev 70834)
+++ branches/JBPAPP_4_2_0_GA_CP/ejb3/src/test/org/jboss/ejb3/test/jaccpropagation/servlets/EJBServlet.java	2008-03-13 19:01:45 UTC (rev 70835)
@@ -60,7 +60,7 @@
       {
          String mode =  request.getParameter("mode");
          
-         Client client = new Client();
+         Client client = new Client(request);
          
          if (mode.equals(Client.JAAS_MODE))
             result = client.processJaasRequest();




More information about the jboss-cvs-commits mailing list