[jboss-cvs] jboss-seam/examples/booking/src/org/jboss/seam/example/booking ...

Gavin King gavin.king at jboss.com
Sun Dec 17 09:07:47 EST 2006


  User: gavin   
  Date: 06/12/17 09:07:47

  Modified:    examples/booking/src/org/jboss/seam/example/booking     
                        LoggedInInterceptor.java Login.java
                        LoginAction.java
  Removed:     examples/booking/src/org/jboss/seam/example/booking     
                        Logout.java LogoutAction.java
  Log:
  better impl of login/out
  
  Revision  Changes    Path
  1.15      +4 -4      jboss-seam/examples/booking/src/org/jboss/seam/example/booking/LoggedInInterceptor.java
  
  (In the diff below, changes in quantity of whitespace are not shown.)
  
  Index: LoggedInInterceptor.java
  ===================================================================
  RCS file: /cvsroot/jboss/jboss-seam/examples/booking/src/org/jboss/seam/example/booking/LoggedInInterceptor.java,v
  retrieving revision 1.14
  retrieving revision 1.15
  diff -u -b -r1.14 -r1.15
  --- LoggedInInterceptor.java	17 Dec 2006 13:12:56 -0000	1.14
  +++ LoggedInInterceptor.java	17 Dec 2006 14:07:46 -0000	1.15
  @@ -1,4 +1,4 @@
  -//$Id: LoggedInInterceptor.java,v 1.14 2006/12/17 13:12:56 gavin Exp $
  +//$Id: LoggedInInterceptor.java,v 1.15 2006/12/17 14:07:46 gavin Exp $
   package org.jboss.seam.example.booking;
   
   import java.lang.reflect.Method;
  @@ -6,9 +6,9 @@
   import javax.interceptor.AroundInvoke;
   import javax.interceptor.InvocationContext;
   
  +import org.jboss.seam.Component;
   import org.jboss.seam.InterceptorType;
   import org.jboss.seam.annotations.Interceptor;
  -import org.jboss.seam.contexts.Contexts;
   
   @Interceptor(type=InterceptorType.CLIENT)
   public class LoggedInInterceptor
  @@ -17,8 +17,8 @@
      @AroundInvoke
      public Object checkLoggedIn(InvocationContext invocation) throws Exception
      {
  -      boolean isLoggedIn = Contexts.getSessionContext().get("loggedIn")!=null;
  -      if ( isLoggedIn )
  +      Login login = (Login) Component.getInstance(LoginAction.class);
  +      if ( login.isLoggedIn() )
         {
            return invocation.proceed();
         }
  
  
  
  1.3       +6 -1      jboss-seam/examples/booking/src/org/jboss/seam/example/booking/Login.java
  
  (In the diff below, changes in quantity of whitespace are not shown.)
  
  Index: Login.java
  ===================================================================
  RCS file: /cvsroot/jboss/jboss-seam/examples/booking/src/org/jboss/seam/example/booking/Login.java,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -b -r1.2 -r1.3
  --- Login.java	17 Dec 2006 01:04:51 -0000	1.2
  +++ Login.java	17 Dec 2006 14:07:46 -0000	1.3
  @@ -1,4 +1,4 @@
  -//$Id: Login.java,v 1.2 2006/12/17 01:04:51 gavin Exp $
  +//$Id: Login.java,v 1.3 2006/12/17 14:07:46 gavin Exp $
   package org.jboss.seam.example.booking;
   
   import javax.ejb.Local;
  @@ -7,4 +7,9 @@
   public interface Login
   {
      public void login();
  +   public void logout();
  +   public void validateLogin();
  +   public boolean isLoggedIn();
  +   
  +   public void destroy();
   }
  
  
  
  1.18      +43 -8     jboss-seam/examples/booking/src/org/jboss/seam/example/booking/LoginAction.java
  
  (In the diff below, changes in quantity of whitespace are not shown.)
  
  Index: LoginAction.java
  ===================================================================
  RCS file: /cvsroot/jboss/jboss-seam/examples/booking/src/org/jboss/seam/example/booking/LoginAction.java,v
  retrieving revision 1.17
  retrieving revision 1.18
  diff -u -b -r1.17 -r1.18
  --- LoginAction.java	17 Dec 2006 01:04:51 -0000	1.17
  +++ LoginAction.java	17 Dec 2006 14:07:46 -0000	1.18
  @@ -1,29 +1,42 @@
  -//$Id: LoginAction.java,v 1.17 2006/12/17 01:04:51 gavin Exp $
  +//$Id: LoginAction.java,v 1.18 2006/12/17 14:07:46 gavin Exp $
   package org.jboss.seam.example.booking;
   
   import java.util.List;
   
  -import javax.ejb.Stateless;
  +import javax.ejb.Remove;
  +import javax.ejb.Stateful;
   import javax.persistence.EntityManager;
   import javax.persistence.PersistenceContext;
   
  +import org.jboss.seam.ScopeType;
  +import org.jboss.seam.Seam;
  +import org.jboss.seam.annotations.Destroy;
   import org.jboss.seam.annotations.In;
   import org.jboss.seam.annotations.Name;
   import org.jboss.seam.annotations.Out;
  -import org.jboss.seam.contexts.Contexts;
  +import org.jboss.seam.annotations.Scope;
  +import org.jboss.seam.annotations.Synchronized;
   import org.jboss.seam.core.FacesMessages;
   
  - at Stateless
  + at Stateful
  + at Scope(ScopeType.SESSION)
  + at Synchronized
   @Name("login")
   public class LoginAction implements Login
   {
      
  -   @In @Out
  +   @In(required=false) 
  +   @Out(required=false)
      private User user;
      
      @PersistenceContext
      private EntityManager em;
   
  +   @In
  +   private FacesMessages facesMessages;
  +   
  +   private boolean loggedIn;
  +
      public void login()
      {
         List<User> results = em.createQuery("select u from User u where u.username=:username and u.password=:password")
  @@ -33,15 +46,37 @@
         
         if ( results.size()==0 )
         {
  -         FacesMessages.instance().add("Invalid login");
  +         facesMessages.add("Invalid login");
         }
         else
         {
            user = results.get(0);
  -         Contexts.getSessionContext().set("loggedIn", true);
  -         FacesMessages.instance().add("Welcome, #{user.name}");
  +         loggedIn = true;
  +         facesMessages.add("Welcome, #{user.name}");
  +      }
  +      
  +   }
  +
  +   public void logout()
  +   {
  +      loggedIn = false;
  +      Seam.invalidateSession();
         }
         
  +   public void validateLogin()
  +   {
  +      if ( !loggedIn )
  +      {
  +         facesMessages.add("Please log in first");
      }
  +   }
  +
  +   public boolean isLoggedIn()
  +   {
  +      return loggedIn;
  +   }
  +   
  +   @Destroy @Remove
  +   public void destroy() {}
   
   }
  
  
  



More information about the jboss-cvs-commits mailing list