[jboss-user] [JBoss Seam] - Problem with seam and session invalidation.
sreeraaman
do-not-reply at jboss.com
Thu Nov 2 07:49:48 EST 2006
Hi All,
>From a secured page, I am trying to logout a user by providing a Logout Button
| <h:commandButton id="logout" value="Logout" action="#{logoutAction.logout}"></h:commandButton>
|
The logoutAction Managed Bean is configured as follows in the faces-config.xml:
| <managed-bean>
| <managed-bean-name>logoutAction</managed-bean-name>
| <managed-bean-class>managedbeans.LogoutAction</managed-bean-class>
| <managed-bean-scope>session</managed-bean-scope>
| </managed-bean>
|
Inside the logout method, following is the code:
| public String logout(){
| String result ="reLogin";
| HttpServletRequest request= (HttpServletRequest)FacesContext.getCurrentInstance().getExternalContext().getRequest();
| Principal userPrincipal = request.getUserPrincipal();
| String userName = userPrincipal.getName();
| System.out.println("Current Logged In user is :" + userName) ;
| HttpSession session = (HttpSession)FacesContext.getCurrentInstance().getExternalContext().getSession(false);
| session.invalidate();
| return result;
| }
|
The navigation rule for the result "reLogin" is configured as follows in faces-config.xml:
| <navigation-case>
| <from-outcome>reLogin</from-outcome>
| <to-view-id>/TestLogout.jsp</to-view-id>
| <redirect />
| </navigation-case>
|
The application is configured for FORM authentication as follows:
| <error-page>
| <error-code>400</error-code>
| <error-code>404</error-code>
| <location>/index.jsp</location>
| </error-page>
| <security-constraint>
| <web-resource-collection>
| <web-resource-name>Whole site</web-resource-name>
| <url-pattern>/secure/*</url-pattern>
| </web-resource-collection>
| <auth-constraint>
| <role-name>*</role-name>
| </auth-constraint>
| <user-data-constraint>
| <transport-guarantee>NONE</transport-guarantee>
| </user-data-constraint>
| </security-constraint>
|
|
| <login-config>
| <auth-method>FORM</auth-method>
| <realm-name>MyDomain</realm-name>
|
| <form-login-config>
| <form-login-page>/Login.seam</form-login-page>
| <form-error-page>/authorization-error.seam</form-error-page>
| </form-login-config>
|
| </login-config>
|
However, on clicking on the Logout button from the secured page, I get the following error:
2006-11-02 16:58:44,253 ERROR [org.apache.catalina.core.ContainerBase.[jboss.web].[localhost].[/kr-intWeb].[Faces Servlet]] Servlet.service() for servlet Faces Servlet threw exception
java.lang.IllegalStateException: No active application scope
at org.jboss.seam.core.Init.instance(Init.java:48)
at org.jboss.seam.jsf.SeamNavigationHandler.handleNavigation(SeamNavigationHandler.java:29)
at org.apache.myfaces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:84)
at javax.faces.component.UICommand.broadcast(UICommand.java:106)
at javax.faces.component.UIViewRoot._broadcastForPhase(UIViewRoot.java:94)
at javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:168)
at org.apache.myfaces.lifecycle.LifecycleImpl.invokeApplication(LifecycleImpl.java:343)
at org.apache.myfaces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:86)
at javax.faces.webapp.FacesServlet.service(FacesServlet.java:137)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:175)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:524)
at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:74)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
at org.jboss.web.tomcat.tc5.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:156)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:869)
at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:664)
at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)
at org.apache.tomcat.util.net.MasterSlaveWorkerThread.run(MasterSlaveWorkerThread.java:112)
at java.lang.Thread.run(Thread.java:595)
Please Help.
regards
Sriraman.
anonymous wrote :
View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=3982646#3982646
Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=3982646
More information about the jboss-user
mailing list