User: starksm Date: 01/07/14 10:10:53 Modified: src/main/org/jboss/test/security/ejb Tag: Branch_2_4 EntityBeanImpl.java RunAsMDB.java Log: Merge latest changes from main Revision Changes Path No revision No revision 1.2.2.1 +52 -2 jbosstest/src/main/org/jboss/test/security/ejb/EntityBeanImpl.java Index: EntityBeanImpl.java =================================================================== RCS file: /cvsroot/jboss/jbosstest/src/main/org/jboss/test/security/ejb/EntityBeanImpl.java,v retrieving revision 1.2 retrieving revision 1.2.2.1 diff -u -r1.2 -r1.2.2.1 --- EntityBeanImpl.java 2001/06/13 04:55:50 1.2 +++ EntityBeanImpl.java 2001/07/14 17:10:52 1.2.2.1 @@ -1,8 +1,15 @@ package org.jboss.test.security.ejb; +import java.lang.reflect.Method; +import java.lang.reflect.InvocationTargetException; import java.rmi.RemoteException; import java.security.Principal; -import javax.ejb.*; +import javax.ejb.EJBException; +import javax.ejb.EntityBean; +import javax.ejb.EntityContext; +import javax.naming.InitialContext; +import javax.naming.NamingException; +import javax.security.auth.Subject; /** A BMP entity bean that creates beans on the fly with a key equal to that passed to findByPrimaryKey. Obviously @@ -10,7 +17,7 @@ using the echo method. @author [EMAIL PROTECTED] -@version $Revision: 1.2 $ +@version $Revision: 1.2.2.1 $ */ public class EntityBeanImpl implements EntityBean { @@ -54,7 +61,50 @@ { System.out.println("EntityBean.echo, arg="+arg); Principal p = context.getCallerPrincipal(); + boolean isInternalRole = context.isCallerInRole("InternalRole"); System.out.println("EntityBean.echo, callerPrincipal="+p); + System.out.println("EntityBean.echo, isCallerInRole('InternalRole')="+isInternalRole); + // Check the java:comp/env/security/security-domain + try + { + InitialContext ctx = new InitialContext(); + Object securityMgr = ctx.lookup("java:comp/env/security/security-domain"); + System.out.println("Checking java:comp/env/security/security-domain"); + if( securityMgr == null ) + throw new EJBException("Failed to find security mgr under: java:comp/env/security/security-domain"); + System.out.println("Found SecurityManager: "+securityMgr); + /* I'm using this runtime introspection to determin if the security + manager supports a getActiveSubject() method because the + org.jboss.security.SubjectSecurityManager interface is not part of + the standard client jars which are used to build the jbosstest suite. + Not legal EJB code, but this is test code. + */ + Class securityMgrClass = securityMgr.getClass(); + Class[] parameterTypes = {}; + Method getActiveSubject = securityMgrClass.getDeclaredMethod("getActiveSubject", parameterTypes); + Object[] args = {}; + Subject activeSubject = (Subject) getActiveSubject.invoke(securityMgr, args); + System.out.println("ActiveSubject: "+activeSubject); + if( activeSubject == null ) + throw new EJBException("No ActiveSubject found"); + } + catch(NoSuchMethodException e) + { + // Ok, not a SubjectSecurityManager + } + catch(InvocationTargetException e) + { + // Ok, not a SubjectSecurityManager + } + catch(IllegalAccessException e) + { + // Ok, not a SubjectSecurityManager + } + catch(NamingException e) + { + e.printStackTrace(); + throw new EJBException("Naming exception: "+e.toString(true)); + } return p.getName(); } 1.1.2.2 +1 -1 jbosstest/src/main/org/jboss/test/security/ejb/RunAsMDB.java Index: RunAsMDB.java =================================================================== RCS file: /cvsroot/jboss/jbosstest/src/main/org/jboss/test/security/ejb/RunAsMDB.java,v retrieving revision 1.1.2.1 retrieving revision 1.1.2.2 diff -u -r1.1.2.1 -r1.1.2.2 --- RunAsMDB.java 2001/07/09 08:54:12 1.1.2.1 +++ RunAsMDB.java 2001/07/14 17:10:52 1.1.2.2 @@ -23,7 +23,7 @@ the InternalRole assigned in the MDB descriptor run-as element. @author [EMAIL PROTECTED] - @version $Revision: 1.1.2.1 $ + @version $Revision: 1.1.2.2 $ */ public class RunAsMDB implements MessageDrivenBean, MessageListener { _______________________________________________ Jboss-development mailing list [EMAIL PROTECTED] http://lists.sourceforge.net/lists/listinfo/jboss-development