[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