Wie kann ich nach Ablauf der Sitzung zur Anmeldeseite umleiten?
Ich habe drei JSF 2.0-Webmodule und muss nach Ablauf der Sitzung zur Anmeldeseite umleiten.
Ich habe es mit einem probiertHttpSessionListener
nennt es diesessionDestroyed()
Event-Methode, aber ich kann die Anfrage dort nicht weiterleiten / umleiten. Ich denke, es ist, weil es keine gibtHttpServletRequest
undHttpServletResponse
Objekte.
Ich habe es auch mit einem probiertPhaseListener
, aber es kommt zu einem Fehler "zu viele Weiterleitungen" im Webbrowser.
public class SessionListener implements PhaseListener {
public PhaseId getPhaseId() {
return PhaseId.RESTORE_VIEW;
}
public void beforePhase(PhaseEvent event) {
if (!FacesContext.getCurrentInstance().isPostback()) {
try {
System.out.println("Session Destroyed");
FacesContext.getCurrentInstance().getExternalContext().redirect("login.jsf");
}
catch (Exception e) {
System.out.println("error" + e);
}
}
}
public void afterPhase(PhaseEvent event) {
try {
System.out.println("Session Created");
}
catch (Exception e) {
System.out.println("error" + e);
}
}
}
Warum funktionieren diese Versuche nicht und wie kann ich es am besten lösen?