概述
用戶訪問應用時保持的連接關係,在多次交互中應用能夠識別出當前訪問的用戶是誰,且可以在多次交互中保存一些數據,當主體成功login後就會創建一個會話
會話管理器
概述: 會話管理器管理着應用中所有 Subject的會話的創建、維護、刪除、失效、驗證等工作
shiro 提供了三個默認實現
- DefaultSessionManager:適合用於 JavaSE 環境
- ServletContainerSessionManager:適用於 Web 環境,其直接使用 Servlet 容器的會話,也就是Shiro會話直接是容器的會話,在容器會話添加屬性等於在Shiro會話添加屬性
- DefaultWebSessionManager:適用於 Web 環境的實現,可以替代 ServletContainerSessionManager,自己維護着會話,直接廢棄了 Servlet 容器的會話管理,不適用Servlet容器的會話作爲Shiro的會話
會話監聽器
概述: 會話監聽器用於監聽會話創建、過期及停止事件,通常實現SessionListener或繼承SessionListenerAdapter類
自定義SessionDao
概述:在Shiro中Session的儲存默認根據使用的SecurityManager來決定,但我們也可以將其自定義,通常實現持久化
實現:通常我們直接繼承AbstractSessionDAO或實現SessionDao接口並實現所有方法