User: stark
Date: 01/02/12 01:29:42
Added: security/src/main/org/jboss/test/security/test/ejbs
Entity.java EntityBeanImpl.java EntityHome.java
StatelessSession.java StatelessSessionBean.java
StatelessSessionBean2.java
StatelessSessionHome.java ejb-jar.xml jboss.xml
roles.properties users.properties
Log:
Tests of the security proxy layer and custom JAAS security
Revision Changes Path
1.1
contrib/security/src/main/org/jboss/test/security/test/ejbs/Entity.java
Index: Entity.java
===================================================================
package org.jboss.test.security.test.ejbs;
import javax.ejb.*;
import java.rmi.*;
public interface Entity extends EJBObject
{
public String echo(String arg) throws RemoteException;
}
1.1
contrib/security/src/main/org/jboss/test/security/test/ejbs/EntityBeanImpl.java
Index: EntityBeanImpl.java
===================================================================
package org.jboss.test.security.test.ejbs;
import java.rmi.RemoteException;
import java.security.Principal;
import javax.ejb.*;
public class EntityBeanImpl implements EntityBean
{
private EntityContext context;
public void ejbActivate()
{
System.out.println("EntityBean.ejbActivate() called");
}
public void ejbPassivate()
{
System.out.println("EntityBean.ejbPassivate() called");
}
public void ejbRemove()
{
System.out.println("EntityBean.ejbRemove() called");
}
public void ejbLoad()
{
System.out.println("EntityBean.ejbLoad() called");
}
public void ejbStore()
{
System.out.println("EntityBean.ejbStore() called");
}
public void setEntityContext(EntityContext context)
{
this.context = context;
}
public void unsetEntityContext()
{
this.context = null;
}
public String echo(String arg)
{
System.out.println("EntityBean.echo, arg="+arg);
Principal p = context.getCallerPrincipal();
System.out.println("EntityBean.echo, callerPrincipal="+p);
return arg;
}
public String ejbFindByPrimaryKey(String key)
{
System.out.println("EntityBean.ejbFindByPrimaryKey, key="+key);
return key;
}
}
1.1
contrib/security/src/main/org/jboss/test/security/test/ejbs/EntityHome.java
Index: EntityHome.java
===================================================================
package org.jboss.test.security.test.ejbs;
import javax.ejb.*;
import java.rmi.*;
public interface EntityHome extends EJBHome
{
public Entity findByPrimaryKey(String key) throws RemoteException,
FinderException;
}
1.1
contrib/security/src/main/org/jboss/test/security/test/ejbs/StatelessSession.java
Index: StatelessSession.java
===================================================================
package org.jboss.test.security.test.ejbs;
import javax.ejb.*;
import java.rmi.*;
public interface StatelessSession extends EJBObject
{
public String echo(String arg) throws RemoteException;
}
1.1
contrib/security/src/main/org/jboss/test/security/test/ejbs/StatelessSessionBean.java
Index: StatelessSessionBean.java
===================================================================
package org.jboss.test.security.test.ejbs;
import java.rmi.RemoteException;
import java.security.Principal;
import javax.ejb.*;
public class StatelessSessionBean implements SessionBean
{
private SessionContext sessionContext;
public void ejbCreate() throws RemoteException, CreateException
{
System.out.println("StatelessSessionBean.ejbCreate() called");
}
public void ejbActivate() throws RemoteException
{
System.out.println("StatelessSessionBean.ejbActivate() called");
}
public void ejbPassivate() throws RemoteException
{
System.out.println("StatelessSessionBean.ejbPassivate() called");
}
public void ejbRemove() throws RemoteException
{
System.out.println("StatelessSessionBean.ejbRemove() called");
}
public void setSessionContext(SessionContext context) throws RemoteException
{
sessionContext = context;
}
public String echo(String arg)
{
System.out.println("StatelessSessionBean.echo, arg="+arg);
Principal p = sessionContext.getCallerPrincipal();
System.out.println("StatelessSessionBean.echo, callerPrincipal="+p);
return arg;
}
}
1.1
contrib/security/src/main/org/jboss/test/security/test/ejbs/StatelessSessionBean2.java
Index: StatelessSessionBean2.java
===================================================================
package org.jboss.test.security.test.ejbs;
import java.rmi.RemoteException;
import java.security.Principal;
import javax.ejb.*;
import javax.naming.InitialContext;
public class StatelessSessionBean2 implements SessionBean
{
private SessionContext sessionContext;
public void ejbCreate() throws RemoteException, CreateException
{
System.out.println("StatelessSessionBean2.ejbCreate() called");
}
public void ejbActivate() throws RemoteException
{
System.out.println("StatelessSessionBean2.ejbActivate() called");
}
public void ejbPassivate() throws RemoteException
{
System.out.println("StatelessSessionBean2.ejbPassivate() called");
}
public void ejbRemove() throws RemoteException
{
System.out.println("StatelessSessionBean2.ejbRemove() called");
}
public void setSessionContext(SessionContext context) throws RemoteException
{
sessionContext = context;
}
public String echo(String arg)
{
System.out.println("StatelessSessionBean2.echo, arg="+arg);
Principal p = sessionContext.getCallerPrincipal();
System.out.println("StatelessSessionBean2.echo, callerPrincipal="+p);
String echo = null;
try
{
InitialContext ctx = new InitialContext();
EntityHome home = (EntityHome) ctx.lookup("java:comp/env/Entity");
Entity entity = home.findByPrimaryKey(arg);
echo = entity.echo(arg);
}
catch(Exception e)
{
e.printStackTrace();
}
return echo;
}
}
1.1
contrib/security/src/main/org/jboss/test/security/test/ejbs/StatelessSessionHome.java
Index: StatelessSessionHome.java
===================================================================
package org.jboss.test.security.test.ejbs;
import javax.ejb.*;
import java.rmi.*;
public interface StatelessSessionHome extends EJBHome
{
public StatelessSession create() throws RemoteException, CreateException;
}
1.1
contrib/security/src/main/org/jboss/test/security/test/ejbs/ejb-jar.xml
Index: ejb-jar.xml
===================================================================
<?xml version="1.0"?>
<!DOCTYPE ejb-jar PUBLIC "-//Sun Microsystems, Inc.//DTD Enterprise JavaBeans
1.1//EN"
"http://java.sun.com/j2ee/dtds/ejb-jar_1_1.dtd">
<ejb-jar>
<display-name>SecurityTests</display-name>
<enterprise-beans>
<session>
<description>A project repository stateful session
bean</description>
<ejb-name>ProjRepository</ejb-name>
<home>org.jboss.test.security.test.ejbs.project.interfaces.ProjRepositoryHome</home>
<remote>org.jboss.test.security.test.ejbs.project.interfaces.ProjRepository</remote>
<ejb-class>org.jboss.test.security.test.ejbs.project.ProjRepositoryBean</ejb-class>
<session-type>Stateful</session-type>
<transaction-type>Container</transaction-type>
</session>
<session>
<description>A trival echo session bean</description>
<ejb-name>StatelessSession</ejb-name>
<home>org.jboss.test.security.test.ejbs.StatelessSessionHome</home>
<remote>org.jboss.test.security.test.ejbs.StatelessSession</remote>
<ejb-class>org.jboss.test.security.test.ejbs.StatelessSessionBean</ejb-class>
<session-type>Stateless</session-type>
<transaction-type>Container</transaction-type>
<security-role-ref>
<role-name>Echo</role-name>
<role-link>Echo</role-link>
</security-role-ref>
</session>
<session>
<description>A trival echo session bean that uses
Entity</description>
<ejb-name>StatelessSession2</ejb-name>
<home>org.jboss.test.security.test.ejbs.StatelessSessionHome</home>
<remote>org.jboss.test.security.test.ejbs.StatelessSession</remote>
<ejb-class>org.jboss.test.security.test.ejbs.StatelessSessionBean2</ejb-class>
<session-type>Stateless</session-type>
<transaction-type>Bean</transaction-type>
<ejb-ref>
<ejb-ref-name>Entity</ejb-ref-name>
<ejb-ref-type>Entity</ejb-ref-type>
<ejb-link>Entity</ejb-link>
<home>org.jboss.test.security.test.ejbs.EntityHome</home>
<remote>org.jboss.test.security.test.ejbs.Entity</remote>
</ejb-ref>
<security-role-ref>
<role-name>Echo</role-name>
<role-link>Echo</role-link>
</security-role-ref>
</session>
<entity>
<description>A trival echo entity bean</description>
<ejb-name>Entity</ejb-name>
<home>org.jboss.test.security.test.ejbs.EntityHome</home>
<remote>org.jboss.test.security.test.ejbs.Entity</remote>
<ejb-class>org.jboss.test.security.test.ejbs.EntityBeanImpl</ejb-class>
<persistence-type>Bean</persistence-type>
<prim-key-class>java.lang.String</prim-key-class>
<reentrant>False</reentrant>
<security-role-ref>
<role-name>Echo</role-name>
<role-link>Echo</role-link>
</security-role-ref>
</entity>
</enterprise-beans>
<assembly-descriptor>
<security-role>
<role-name>Echo</role-name>
</security-role>
<method-permission>
<role-name>Echo</role-name>
<method>
<ejb-name>StatelessSession</ejb-name>
<method-name>*</method-name>
</method>
<method>
<ejb-name>StatelessSession2</ejb-name>
<method-name>*</method-name>
</method>
<method>
<ejb-name>Entity</ejb-name>
<method-name>*</method-name>
</method>
</method-permission>
</assembly-descriptor>
</ejb-jar>
1.1
contrib/security/src/main/org/jboss/test/security/test/ejbs/jboss.xml
Index: jboss.xml
===================================================================
<?xml version="1.0"?>
<jboss>
<security-domain>test-domain</security-domain>
<container-configurations>
<container-configuration>
<container-name>Standard Stateful SessionBean</container-name>
<role-mapping-manager>java:/jaas/test-domain</role-mapping-manager>
<authentication-module>java:/jaas/test-domain</authentication-module>
</container-configuration>
<container-configuration>
<container-name>Standard Stateless SessionBean</container-name>
<role-mapping-manager>java:/jaas/test-domain</role-mapping-manager>
<authentication-module>java:/jaas/test-domain</authentication-module>
</container-configuration>
<container-configuration>
<container-name>Standard BMP EntityBean</container-name>
</container-configuration>
</container-configurations>
<enterprise-beans>
<session>
<ejb-name>ProjRepository</ejb-name>
<configuration-name>Standard Stateful
SessionBean</configuration-name>
<stateless-security-proxy>org.jboss.test.security.test.ejbs.project.ProjRepositoryStatelessProxy</stateless-security-proxy>
<stateful-security-proxy>org.jboss.test.security.test.ejbs.project.ProjRepositoryStatefulProxy</stateful-security-proxy>
</session>
<session>
<ejb-name>StatelessSession</ejb-name>
<configuration-name>Standard Stateless
SessionBean</configuration-name>
</session>
<session>
<ejb-name>StatelessSession2</ejb-name>
<configuration-name>Standard Stateless
SessionBean</configuration-name>
</session>
<entity>
<ejb-name>Entity</ejb-name>
<configuration-name>Standard BMP
EntityBean</configuration-name>
</entity>
</enterprise-beans>
</jboss>
1.1
contrib/security/src/main/org/jboss/test/security/test/ejbs/roles.properties
Index: roles.properties
===================================================================
scott=Echo
stark=Java,Coder
1.1
contrib/security/src/main/org/jboss/test/security/test/ejbs/users.properties
Index: users.properties
===================================================================
scott=echoman
stark=javaman