# JSF session.invalidate() klappt nicht



## Marsman (13. Mrz 2008)

Hallo Ihr!

Ich habe eine Anwendung programmiert, welche über einen per Login geschützten Bereich verfügt. Beim Logout verwende ich die Methode session.invalidate() in der letzten JSF innerhalb des Bereichs, um die Sitzung zu beenden. Wenn ich allerdings im Tomcat-Manager die aktive Anwendungen aufliste, scheint die Session laut Anzahl Sitzungen trotzdem noch aktiv zu sein. Erst der Timeout führt zum Schließen der Sitzung. Weiß jemand evtl., woran das liegen könnte?

Hier noch der betreffende Code in der letzten JSF:


```
<%@ page contentType="text/html;charset=utf-8"%>
...
<% session.invalidate(); %>
<% response.sendRedirect("../logout.jsp"); %> 
...
```

Gruß, Titus


----------



## maki (13. Mrz 2008)

Wenn der Client auf den Server zugreift, muss er eine Session haben, wenn nicht bekommt er eine.
Ist die Session gleich vor dem invalidate und nach dem redirect?
Wenn der invalidate funktioniert, sollte der Client durch den redirect eine neue Session zugewiesen bekommen.


----------



## Vale (11. Aug 2009)

Ich habe das gleiche Problem und leider noch keine Lösung gefunden.

Wenn ich mich von meiner JSF-Seite abmelde (session.invalidate) muss ich mich zwar erneut anmelden wenn ich den geschützten Bereich betreten will, aber ich bin der zuvor angemeldete Benutzer der eigentlich abgemeldet sein sollte.

- login als *A*
- "Hallo *A*" (Erste Seite)
- logout
- redirect
- login als B
- "Hallo *A*" (Erste Seite)
- Klick auf zweite Seite: Fehler "Du bist nicht *A*, also du darfst du hier nicht hin." <-- nun weiß "er" also dass ich B bin.

Hier der Code:

```
public String logout() {        
	    FacesContext context = FacesContext.getCurrentInstance();
            context .getExternalContext().getSessionMap().remove("DieseBean"); // Bean löschen

	    HttpSession session = (HttpSession) context.getExternalContext().getSession(false);
	    session.setAttribute("user", null);
	    session.invalidate(); 
            session.setMaxInactiveInterval(0);
```

Das oben beschriebene Verhalten bleibt und ich weiß nicht weiter. 
Danke für eure Hilfe.


----------



## FArt (11. Aug 2009)

Zwischenfrage: was spricht gegen JAAS? Das würde funktionieren...


----------

