User: starksm 
  Date: 01/09/08 22:49:06

  Modified:    src/main/org/jboss/test/security/test TestEJBSpec.java
  Log:
  Add test of handle security
  
  Revision  Changes    Path
  1.13      +54 -7     jbosstest/src/main/org/jboss/test/security/test/TestEJBSpec.java
  
  Index: TestEJBSpec.java
  ===================================================================
  RCS file: 
/cvsroot/jboss/jbosstest/src/main/org/jboss/test/security/test/TestEJBSpec.java,v
  retrieving revision 1.12
  retrieving revision 1.13
  diff -u -r1.12 -r1.13
  --- TestEJBSpec.java  2001/09/07 10:26:44     1.12
  +++ TestEJBSpec.java  2001/09/09 05:49:06     1.13
  @@ -4,6 +4,7 @@
   import java.net.InetAddress;
   import java.rmi.RemoteException;
   import javax.ejb.CreateException;
  +import javax.ejb.Handle;
   import javax.management.ObjectName;
   import javax.naming.InitialContext;
   import javax.naming.NamingException;
  @@ -34,7 +35,7 @@
    deployment unit. These test the basic role based access model.
    
    @author [EMAIL PROTECTED]
  - @version $Revision: 1.12 $
  + @version $Revision: 1.13 $
    */
   public class TestEJBSpec
      extends TestCase
  @@ -243,7 +244,10 @@
         }
         bean.remove();
      }
  -   
  +
  +   /** Test that an MDB with a run-as identity is able to access secure EJBs
  +    that require the identity.
  +    */
      public void testMDBRunAs() throws Exception
      {
         System.out.println("+++ testMDBRunAs");
  @@ -267,6 +271,50 @@
         queueConn.close();
      }
   
  +   /** Test the security behavior of handles. To obtain secured bean from
  +      a handle that the handle be 
  +    */
  +   public void testHandle() throws Exception
  +   {
  +      System.out.println("+++ testHandle");
  +      login();
  +      InitialContext jndiContext = new InitialContext();
  +      Object obj = jndiContext.lookup("spec.StatelessSession");
  +      obj = PortableRemoteObject.narrow(obj, StatelessSessionHome.class);
  +      StatelessSessionHome home = (StatelessSessionHome) obj;
  +      System.out.println("Found StatelessSessionHome");
  +      StatelessSession bean = home.create();
  +      System.out.println("Created spec.StatelessSession");
  +      Handle h = bean.getHandle();
  +      System.out.println("Obtained handle: "+h);
  +      bean = (StatelessSession) h.getEJBObject();
  +      System.out.println("Obtained bean from handle: "+bean);
  +      System.out.println("Bean.echo('Hello') -> "+bean.echo("Hello"));
  +      logout();
  +
  +      /* Attempting to obtain the EJB fron the handle without security
  +       association present should fail
  +      */
  +      try
  +      {
  +         bean = (StatelessSession) h.getEJBObject();
  +         fail("Should not be able to obtain a bean without login info");
  +      }
  +      catch(Exception e)
  +      {
  +         System.out.println("Obtaining bean from handle failed as expected, 
e="+e.getMessage());
  +      }
  +
  +      // One should be able to obtain a handle without a login
  +      h = bean.getHandle();
  +      login();
  +      // Now we should be able to obtain and use the secure bean
  +      bean = (StatelessSession) h.getEJBObject();
  +      System.out.println("Obtained bean from handle: "+bean);
  +      System.out.println("Bean.echo('Hello') -> "+bean.echo("Hello"));
  +      logout();
  +   }
  +
      /** Login as user scott using the conf.name login config or
       'spec-test' if conf.name is not defined.
       */
  @@ -306,8 +354,7 @@
         // Ask the deployer for the getWarDeployerName
         Object[] params = {"other"};
         String[] signature = {"java.lang.String"};
  -      String warDeployerName = (String) server.invoke(jaasMgr,
  -         "flushAuthenticationCache", params, signature);
  +      server.invoke(jaasMgr, "flushAuthenticationCache", params, signature);
      }
   
      /**
  @@ -317,9 +364,9 @@
      {
         TestSuite suite = new TestSuite();
         suite.addTest(new TestSuite(TestEJBSpec.class));
  -
  +        
         final String filename = "security-spec.jar";
  -    
  +
         // Create an initializer for the test suite
         TestSetup wrapper= new TestSetup(suite)
         {
  @@ -334,5 +381,5 @@
             }
         };
         return wrapper;
  -   } 
  +   }
   }
  
  
  

_______________________________________________
Jboss-development mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/jboss-development

Reply via email to