2015-08-07 12 views
7

Mam sesję Shiro (id = 11111) i sesję http (id = 22222).Shiro: Nie można unieważnić HttpSession

Kiedy próbuję unieważnić HttpSession, używany jest zły identyfikator.

Kod:

 
public void logout() { 
     SecurityUtils.getSubject().logout(); 

// exception is thrown in this line 
FacesContext.getCurrentInstance().getExternalContext().invalidateSession(); 
    } 

Wyjątek:

 
java.lang.IllegalStateException: 
org.apache.shiro.session.UnknownSessionException: 
There is no session with id [22222] 

Jak mogę unieważnić HttpSession czy raczej ustawić prawidłowy identyfikator?

+1

Kompletny ślad stosu byłby przydatny –

Odpowiedz

1

Problem został rozwiązany poprzez zaimplementowanie HttpSessionBindingListener i utworzenie odwzorowania sesji Shiro na sesje http.

0

SecurityUtils.getSubject(). Logout() zatrzymuje i unieważnia sesję z DefaultSecurityManager.logout (Temat podmiotu). Tak więc sesji nie można unieważnić po wywołaniu logout().

Powiązane problemy