hi,all i use Seam 1.2.1GA security and event listener to trigger logout() from authenticator when user session is time out. But it didnot work sometime.
Here is my configuration in components.xml | <event type="org.jboss.seam.preDestroyContext.SESSION"> | <action expression="#{authenticator.logout}" /> | </event> | authenticator: | @Stateless | @Name("authenticator") | public class AuthenticatorBean implements Authenticator{ | | @In | private Identity identity; | @In | private FacesMessages facesMessages; | | @Logger | private Log log; | | public boolean authenticate() { | String username = identity.getUsername(); | String password = identity.getPassword(); | | | if(username.equalsIgnoreCase("xinhua")){ | return true; | | }else{ | facesMessages.addFromResourceBundle("loginForm_loginFailed"); | return false; | } | | | } | | public void logout() { | log.info("logout(): user "+identity.getUsername()+" logout"); | identity.logout(); | } | | } | When user session is out of time, a null exception appears sometime.And logout() is skipped... | 17:52:40,793 ERROR [[/strato]] Session event listener threw exception | java.lang.NullPointerException: facesContext | at org.apache.myfaces.el.MethodBindingImpl.invoke(MethodBindingImpl.java:110) | at org.jboss.seam.actionparam.ActionParamBindingHelper.invokeTheExpression(ActionParamBindingHelper.java:58) | at org.jboss.seam.actionparam.ActionParamMethodBinding.invoke(ActionParamMethodBinding.java:75) | at org.jboss.seam.core.Expressions$2.invoke(Expressions.java:148) | at org.jboss.seam.core.Events.raiseEvent(Events.java:63) | at org.jboss.seam.contexts.Contexts.destroy(Contexts.java:215) | at org.jboss.seam.contexts.Lifecycle.endSession(Lifecycle.java:297) | at org.jboss.seam.servlet.SeamListener.sessionDestroyed(SeamListener.java:45) | at org.apache.catalina.session.StandardSession.expire(StandardSession.java:687) | at org.apache.catalina.session.StandardSession.isValid(StandardSession.java:579) | at org.apache.catalina.session.ManagerBase.processExpires(ManagerBase.java:678) | at org.apache.catalina.session.ManagerBase.backgroundProcess(ManagerBase.java:663) | at org.apache.catalina.core.ContainerBase.backgroundProcess(ContainerBase.java:1284) | at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.processChildren(ContainerBase.java:1569) | at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.processChildren(ContainerBase.java:1578) | at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.processChildren(ContainerBase.java:1578) | at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.run(ContainerBase.java:1558) | at java.lang.Thread.run(Thread.java:595) | 17:52:49,059 INFO [Lifecycle] starting up: org.jboss.seam.security.identity | 17:54:40,891 ERROR [[/strato]] Session event listener threw exception | java.lang.IllegalStateException: Please end the HttpSession via Seam.invalidateSession() | at org.jboss.seam.contexts.Lifecycle.endSession(Lifecycle.java:269) | at org.jboss.seam.servlet.SeamListener.sessionDestroyed(SeamListener.java:45) | at org.apache.catalina.session.StandardSession.expire(StandardSession.java:687) | at org.apache.catalina.session.StandardSession.isValid(StandardSession.java:579) | at org.apache.catalina.session.ManagerBase.processExpires(ManagerBase.java:678) | at org.apache.catalina.session.ManagerBase.backgroundProcess(ManagerBase.java:663) | at org.apache.catalina.core.ContainerBase.backgroundProcess(ContainerBase.java:1284) | at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.processChildren(ContainerBase.java:1569) | at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.processChildren(ContainerBase.java:1578) | at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.processChildren(ContainerBase.java:1578) | at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.run(ContainerBase.java:1558) | at java.lang.Thread.run(Thread.java:595) | the listener is not stable when sessionDestroyed. :( anyone can tell me why? thanks! View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4054062#4054062 Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4054062 _______________________________________________ jboss-user mailing list jboss-user@lists.jboss.org https://lists.jboss.org/mailman/listinfo/jboss-user