Miguel Z created SEAMFACES-239:
----------------------------------
Summary: @LoggedIn and @LoginView handler in conflict with
navigation rule for identity.logout
Key: SEAMFACES-239
URL: https://issues.jboss.org/browse/SEAMFACES-239
Project: Seam Faces
Issue Type: Bug
Affects Versions: 3.1.0.Final
Environment: Seam 3.1.0 Final + TomEE 1b2
Reporter: Miguel Z
I have the following logout link:
<h:commandLink value="Logout" action="#{identity.logout}"/>
and the following navigation rule:
<navigation-rule>
<from-view-id>*</from-view-id>
<navigation-case>
<from-action>#{identity.logout}</from-action>
<to-view-id>/login.xhtml</to-view-id>
<redirect/>
</navigation-case>
</navigation-rule>
In view config the pages where the logout link is displayed are annotated like
e.g. home.xhtml
...
@ViewPattern("/home.xhtml")
@LoggedIn
@AccessDeniedView("/error.xhtml")
@LoginView("/login.xhtml")
HOME
...
When I click on the logout link it seems that the redirection to the login view
is fired by the @LoggedIn handler AND NOT by the navigation rule. This causes
the PreLoginEvent to be fired and the URL gets stored.
After relogin I get the page from before logout reestablished like it should be
in case of a session timeout etc.
In case of a normal logout this should not happen which requires that the URL
does not get stored.
My current workaround removes the URL in a (second) observer. Up to now it gets
executed after the one in the LoginListener that puts the URL in the map (maybe
other login events are more adequate):
public void onBeforeLogin(@Observes PreLoginEvent preLoginEvent) {
String PRE_LOGIN_URL = LoginListener.class.getName() + "_PRE_LOGIN_URL";
facesContext.getExternalContext().getSessionMap().remove(PRE_LOGIN_URL);
}
Conclusion: @LoggedIn should not be checked in case of normal logout
(identity.logout action)
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators:
https://issues.jboss.org/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira
_______________________________________________
seam-issues mailing list
[email protected]
https://lists.jboss.org/mailman/listinfo/seam-issues