[jboss-cvs] jboss-seam/src/test/misc/org/jboss/seam/test ...

Shane Bryzak Shane_Bryzak at symantec.com
Sun Nov 12 19:05:58 EST 2006


  User: sbryzak2
  Date: 06/11/12 19:05:58

  Modified:    src/test/misc/org/jboss/seam/test  SecurityTest.java
  Log:
  unit tests
  
  Revision  Changes    Path
  1.4       +90 -0     jboss-seam/src/test/misc/org/jboss/seam/test/SecurityTest.java
  
  (In the diff below, changes in quantity of whitespace are not shown.)
  
  Index: SecurityTest.java
  ===================================================================
  RCS file: /cvsroot/jboss/jboss-seam/src/test/misc/org/jboss/seam/test/SecurityTest.java,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -b -r1.3 -r1.4
  --- SecurityTest.java	10 Nov 2006 19:07:01 -0000	1.3
  +++ SecurityTest.java	13 Nov 2006 00:05:58 -0000	1.4
  @@ -1,11 +1,32 @@
   package org.jboss.seam.test;
   
   import java.io.Serializable;
  +import javax.persistence.EntityManager;
  +import javax.persistence.EntityManagerFactory;
   import javax.persistence.Id;
  +import javax.servlet.ServletContext;
   
  +import org.hibernate.ejb.Ejb3Configuration;
   import org.jboss.seam.annotations.Name;
  +import org.jboss.seam.contexts.ContextAdaptor;
  +import org.jboss.seam.contexts.Contexts;
  +import org.jboss.seam.contexts.Lifecycle;
  +import org.jboss.seam.mock.MockAclObjectIdentity;
  +import org.jboss.seam.mock.MockAclPermission;
  +import org.jboss.seam.mock.MockHttpSession;
  +import org.jboss.seam.mock.MockSecureEntity;
  +import org.jboss.seam.mock.MockServletContext;
  +import org.jboss.seam.security.UsernamePasswordToken;
  +import org.jboss.seam.security.acl.AclProvider.RecipientType;
   import org.jboss.seam.security.acl.JPAIdentityGenerator;
   import org.testng.annotations.Test;
  +import org.jboss.seam.security.SeamSecurityManager;
  +import org.jboss.seam.Component;
  +import org.jboss.seam.security.acl.PersistentAclProvider;
  +import org.hibernate.ejb.EventListenerConfigurator;
  +import org.jboss.seam.mock.MockExternalContext;
  +import org.jboss.seam.core.Manager;
  +import org.jboss.seam.init.Initialization;
   
   public class SecurityTest
   {
  @@ -51,4 +72,73 @@
       assert("mock:1234,abc".equals(gen.generateIdentity(new MockSecureEntityCompositeId(
         new MockCompositeId(1234, "abc")))));
     }
  +
  +  @Test
  +  public void testPersistentAcls()
  +  {
  +    Ejb3Configuration ac = new Ejb3Configuration();
  +
  +    ac.setProperty("hibernate.connection.driver_class", "org.hsqldb.jdbcDriver");
  +    ac.setProperty("hibernate.connection.url", "jdbc:hsqldb:mem:aname");
  +    ac.setProperty("hibernate.connection.username", "sa");
  +    ac.setProperty("hibernate.dialect", "org.hibernate.dialect.HSQLDialect");
  +    ac.setProperty("hibernate.hbm2ddl.auto", "create");
  +    ac.setProperty("hibernate.show_sql", "true");
  +    ac.setProperty("hibernate.cache.use_second_level_cache", "false");
  +
  +    ac.addAnnotatedClass(MockAclPermission.class);
  +    ac.addAnnotatedClass(MockAclObjectIdentity.class);
  +    ac.addAnnotatedClass(MockSecureEntity.class);
  +
  +    EntityManagerFactory factory = ac.createEntityManagerFactory();
  +
  +    EntityManager em = factory.createEntityManager();
  +    em.getTransaction().begin();
  +
  +    // Create our mock entity
  +    MockSecureEntity ent = new MockSecureEntity();
  +    ent.setId(123);
  +    em.persist(ent);
  +
  +    // Now create an identity for it
  +    MockAclObjectIdentity ident = new MockAclObjectIdentity();
  +    ident.setId(1);
  +    ident.setObjectIdentity(new JPAIdentityGenerator().generateIdentity(ent));
  +    em.persist(ident);
  +
  +    // And now create some permissions
  +    /** @todo This step should eventually be done using SeamSecurityManager.grantPermission() */
  +    MockAclPermission perm = new MockAclPermission();
  +    perm.setId(1);
  +    perm.setIdentity(ident);
  +    perm.setRecipient("testUser");
  +    perm.setRecipientType(RecipientType.user);
  +    perm.setMask(0x01 & 0x02);  // read/delete permission only
  +    em.persist(perm);
  +    em.flush();
  +    em.getTransaction().commit();
  +
  +    // Create an Authentication object in session scope
  +    MockServletContext ctx = new MockServletContext();
  +    MockExternalContext eCtx = new MockExternalContext(ctx);
  +
  +    new Initialization(ctx).setScannerEnabled(false).init();
  +
  +    Lifecycle.beginRequest(eCtx);
  +
  +    Contexts.getSessionContext().set("org.jboss.seam.security.authentication",
  +                                     new UsernamePasswordToken("testUser", "",
  +                                     new String[] {}));
  +
  +    Component aclProviderComp = new Component(PersistentAclProvider.class,
  +                                              "persistentAclProvider");
  +    PersistentAclProvider aclProvider = (PersistentAclProvider) aclProviderComp.newInstance();
  +    aclProvider.setPersistenceContextManager(factory);
  +
  +    /** @todo Under construction */
  +
  +    //    SeamSecurityManager.instance().set
  +
  +    Lifecycle.endRequest();
  +  }
   }
  
  
  



More information about the jboss-cvs-commits mailing list