[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