FileDocCategorySizeDatePackage
Client.javaAPI DocJBoss 4.2.14728Fri Jul 13 20:55:26 BST 2007org.jboss.tutorial.jboss_deployment_descriptor.client

Client

public class Client extends Object
Comment
author
Bill Burke
version
$Revision: 60233 $

Fields Summary
Constructors Summary
Methods Summary
public static voidmain(java.lang.String[] args)

      testShoppingCart();
      testStateless();
   
private static voidtestShoppingCart()

      // Establish the proxy with an incorrect security identity
      Properties env = new Properties();
      env.setProperty(Context.INITIAL_CONTEXT_FACTORY, "org.jboss.security.jndi.JndiLoginInitialContextFactory");
      env.setProperty(Context.SECURITY_PRINCIPAL, "bill");
      env.setProperty(Context.SECURITY_CREDENTIALS, "invalidpassword");
      InitialContext ctx = new InitialContext(env);
      ShoppingCart cart = (ShoppingCart) ctx.lookup("ShoppingCart");


      System.out.println("Attempting to buy 1 memory stick with incorrect password");
      try
      {
         cart.buy("Memory stick", 1);
      }
      catch (javax.ejb.EJBAccessException e)
      {
         System.out.println("Caught javax.ejb.EJBAccessException as expected");
      }

      System.out.println("Setting user/password");
      env.setProperty(Context.SECURITY_CREDENTIALS, "password");

      ctx = new InitialContext(env);

      System.out.println("bill is a shopper, so is allowed to buy");
      System.out.println("Buying 1 memory stick");
      cart.buy("Memory stick", 1);
      System.out.println("Buying another memory stick");
      cart.buy("Memory stick", 1);

      System.out.println("Buying a laptop");
      cart.buy("Laptop", 1);

      System.out.println("Print cart:");
      HashMap<String, Integer> fullCart = cart.getCartContents();
      for (String product : fullCart.keySet())
      {
         System.out.println(fullCart.get(product) + "     " + product);
      }

      System.out.println("bill is not a clerk, so is not allowed to price check");
      try
      {
         cart.priceCheck("Laptop");
      }
      catch (javax.ejb.EJBAccessException  ex)
      {
         System.out.println("Caught SecurityException as expected");
      }

      System.out.println("Checkout");
      cart.checkout();

      System.out.println("Should throw an object not found exception by invoking on cart after @Remove method");
      try
      {
         cart.getCartContents();
      }
      catch (NoSuchEJBException e)
      {
         System.out.println("Successfully caught no such object exception.");
      }
   
private static voidtestStateless()

      InitialContext jndiContext = new InitialContext();
      StatelessTest stateless = (StatelessTest)jndiContext.lookup("StatelessTest");
      
      SecurityAssociation.setPrincipal(new SimplePrincipal("bill2"));
      SecurityAssociation.setCredential("invalidpassword".toCharArray());
      
      try
      {
         stateless.testSecurity();
      }
      catch (javax.ejb.EJBAccessException e)
      {
         System.out.println("Caught javax.ejb.EJBAccessException as expected");
      }
      
      SecurityAssociation.setCredential("password2".toCharArray());
      
      stateless.testSecurity();
      
      System.out.println("Successfully accessed SLSB in tutorial-test security domain");