User: starksm Date: 01/06/15 01:48:25 Added: src/main/org/jboss/test/security/ejb StatelessSessionBean3.java Log: Add tests of the EJB2.0 security-identity/run-as element Revision Changes Path 1.1 jbosstest/src/main/org/jboss/test/security/ejb/StatelessSessionBean3.java Index: StatelessSessionBean3.java =================================================================== package org.jboss.test.security.ejb; import java.rmi.RemoteException; import java.security.Principal; import javax.ejb.CreateException; import javax.ejb.EJBException; import javax.ejb.SessionBean; import javax.ejb.SessionContext; import javax.naming.InitialContext; import org.jboss.test.security.interfaces.Entity; import org.jboss.test.security.interfaces.EntityHome; import org.jboss.test.security.interfaces.StatelessSession; import org.jboss.test.security.interfaces.StatelessSessionHome; /** A SessionBean that accesses an Entity bean in its echo() method to test runAs identity propagation. It also access its own excluded() method to test that the runAs identity is also see on methods of this bean that are invoked through the remote interface. @author [EMAIL PROTECTED] @version $Revision: 1.1 $ */ public class StatelessSessionBean3 implements SessionBean { private SessionContext sessionContext; public void ejbCreate() throws RemoteException, CreateException { System.out.println("StatelessSessionBean3.ejbCreate() called"); } public void ejbActivate() throws RemoteException { System.out.println("StatelessSessionBean3.ejbActivate() called"); } public void ejbPassivate() throws RemoteException { System.out.println("StatelessSessionBean3.ejbPassivate() called"); } public void ejbRemove() throws RemoteException { System.out.println("StatelessSessionBean3.ejbRemove() called"); } public void setSessionContext(SessionContext context) throws RemoteException { sessionContext = context; } /** This method creates an instance of the entity bean bound under java:comp/env/ejb/Entity and then invokes its echo method. This method should be accessible by user's with a role of Echo, while the Entity bean should only be accessible by the runAs role. */ public String echo(String arg) { System.out.println("StatelessSessionBean3.echo, arg="+arg); // This call should fail if the bean is not secured Principal p = sessionContext.getCallerPrincipal(); System.out.println("StatelessSessionBean3.echo, callerPrincipal="+p); String echo = null; try { InitialContext ctx = new InitialContext(); EntityHome home = (EntityHome) ctx.lookup("java:comp/env/ejb/Entity"); Entity bean = home.findByPrimaryKey(arg); echo = bean.echo(arg); } catch(Exception e) { e.printStackTrace(); e.fillInStackTrace(); throw new EJBException(e); } return echo; } public String forward(String echoArg) { System.out.println("StatelessSessionBean3.forward, echoArg="+echoArg); String echo = null; try { InitialContext ctx = new InitialContext(); StatelessSessionHome home = (StatelessSessionHome) ctx.lookup("java:comp/env/ejb/Session"); StatelessSession bean = home.create(); echo = bean.echo(echoArg); } catch(Exception e) { e.printStackTrace(); e.fillInStackTrace(); throw new EJBException(e); } return echo; } /** This method gets this bean's remote interface and invokes the excluded() method to test that the method is accessed as the runAs role. */ public void noop() { System.out.println("StatelessSessionBean3.noop calling excluded..."); StatelessSession myEJB = (StatelessSession) sessionContext.getEJBObject(); try { myEJB.excluded(); } catch(RemoteException e) { throw new EJBException("Failed to access excluded: "+e.detail); } } public void npeError() { System.out.println("StatelessSessionBean3.npeError"); Object obj = null; obj.toString(); } public void unchecked() { Principal p = sessionContext.getCallerPrincipal(); System.out.println("StatelessSessionBean.unchecked, callerPrincipal="+p); } /** This method should be assigned access to the runAs role and no user should have this role. */ public void excluded() { System.out.println("StatelessSessionBean3.excluded, accessed"); // This call should fail if the bean is not secured Principal p = sessionContext.getCallerPrincipal(); System.out.println("StatelessSessionBean3.excluded, callerPrincipal="+p); } } _______________________________________________ Jboss-development mailing list [EMAIL PROTECTED] http://lists.sourceforge.net/lists/listinfo/jboss-development