[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