JSF2.2 – Implémenter un logout
Pour implémenter une fonctionnalité de logout (déconnexion) à partir d’une interface JSF, il faut invalider la session en cours. Pour cela, un bouton va appeler une action d’un @Model
. C’est-à-dire, coté JSF :
<h:form> <h:commandLink value="Logout" action="#{logoutBean.logout}" /> </h:form>
Coté Java, si on considère que le point d’entrée de l’application est /index.html
:
public String logout() { ((HttpSession) FacesContext.getCurrentInstance().getExternalContext() .getSession(true)).invalidate(); return "/index.html?faces-redirect=true"; }
Remarque, pour procéder à une redirection avec JSF2.2, il faut ajouter ce paramètre à l’URL choisie : ...?faces-redirect=true