2015-08-07 16 views
7

Tôi có phiên Shiro (id = 11111) và phiên http (id = 22222).Shiro: Không thể vô hiệu hoá HttpSession

Khi tôi cố gắng vô hiệu hóa HttpSession, id sai được sử dụng.

Code:

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

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

Ngoại lệ:

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

Làm thế nào tôi có thể làm mất hiệu lực HttpSession hay đúng hơn là thiết lập id có đúng không?

+1

Theo dõi ngăn xếp hoàn chỉnh sẽ hữu ích –

Trả lời

1

Sự cố đã được giải quyết bằng cách triển khai một HttpSessionBindingListener và tạo ánh xạ các phiên Shiro đến các phiên http.

0

SecurityUtils.getSubject(). Logout() dừng và làm mất hiệu lực phiên từ DefaultSecurityManager.logout (Chủ đề chủ đề). Vì vậy, phiên không thể bị vô hiệu hóa sau khi cuộc gọi đăng xuất().

Các vấn đề liên quan