# 会话存储
WebContext 与 HTTP 请求和响应相关。
为了专门处理会话,它依赖于一个 SessionStore (opens new window),它可以通过 getSessionStore
方法获得。
它有以下方法:
getOrCreateSessionId
:获取或创建会话标识符,并在必要时使用它初始化会话get
:从会话中获取属性set
:设置会话中的属性destroySession
:销毁基础 web 会话getTrackableSession
:将本地会话作为可跟踪对象(用于后台通道注销)buildFromTrackableSession
:从可跟踪会话构建新的会话存储(用于后台通道注销)renewSession
:通过将所有数据复制到新会话来更新本地会话。
例如,JEEContext
当前使用依赖 JEE 会话的 JEESessionStore (opens new window)。在 Play 中,我们有一个特定的基于缓存的 PlayCacheSessionStore (opens new window),在 Knox 中也有一个基于 cookie 的 KnoxSessionStore
。
ProfileStorageDecision (opens new window) 定义了与配置文件相关的决策,即我们是否必须从中读取并将其保存到 web 会话中。它由 DefaultSecurityLogic (opens new window) 使用:
- 默认情况下,将设置 DefaultProfileStorageDecision (opens new window),这适用于仅使用间接客户端或直接客户端的 web 应用程序
- 对于同时使用间接和直接客户端以及混合认证的 web 应用程序,应使用 AlwaysUseSessionProfileStorageDecision (opens new window)。