public class HiddenStore extends SessionStore
SessionStore拡張クラス。
5u13以前のHiddenStoreクラスに以下の追加変更を行っている。
| 項目 | 長さ |
|--------------------------------------------------+-------|
| セッションIDバイト長 | 4Byte |
| セッションID | 可変 |
| セッションエントリ(SessionEntryのリスト) | 可変 |
保存(save(String, List, ExecutionContext)時にセッションIDを格納しておき、
復元(load(String, ExecutionContext))時にセッションIDが一致することを確認する。
これにより、他ユーザのデータを流用することを防止する。
復元時点でセッションタイムアウトが発生している場合は、
復元処理がスキップされるため(save(String, List, ExecutionContext) save}が呼ばれない)
セッションIDの変更が改ざんに誤検知されることはない。| Modifier and Type | Class and Description |
|---|---|
static class |
HiddenStore.HiddenStoreLoadFailedException
HiddenStoreのロードに失敗した場合に送出する例外。
|
| Constructor and Description |
|---|
HiddenStore()
コンストラクタ。
|
| Modifier and Type | Method and Description |
|---|---|
void |
delete(java.lang.String sessionId,
ExecutionContext executionContext)
セッションの内容をストアから削除する。
|
void |
invalidate(java.lang.String sessionId,
ExecutionContext executionContext)
セッションストアを無効にする。
|
java.util.List<SessionEntry> |
load(java.lang.String currentSessionId,
ExecutionContext executionContext)
セッションの内容をストアからロードする。
セッションの内容が存在しない場合は空リストを返す。
|
void |
save(java.lang.String sessionId,
java.util.List<SessionEntry> entries,
ExecutionContext executionContext)
セッションの内容をストアに保存する。
|
void |
setEncryptor(Encryptor encryptor)
暗号化クラスを設定する。
デフォルトでは
AesEncryptorが使用される。
暗号化のカスタマイズを行う場合は、このプロパティにEncryptor実装を設定する。 |
void |
setParameterName(java.lang.String parameterName)
パラメータ名を設定する。
|
decode, encode, getExpiresMilliSeconds, getName, getStateEncoder, isExtendable, setExpires, setExpires, setName, setStateEncoderpublic void save(java.lang.String sessionId,
java.util.List<SessionEntry> entries,
ExecutionContext executionContext)
save in class SessionStoresessionId - セッションIDentries - セッションエントリリストexecutionContext - コンテキストpublic java.util.List<SessionEntry> load(java.lang.String currentSessionId, ExecutionContext executionContext)
SessionStoreload in class SessionStorecurrentSessionId - セッションIDexecutionContext - コンテキストpublic void delete(java.lang.String sessionId,
ExecutionContext executionContext)
SessionStoredelete in class SessionStoresessionId - セッションIDexecutionContext - コンテキストpublic void invalidate(java.lang.String sessionId,
ExecutionContext executionContext)
SessionStoreinvalidate in class SessionStoresessionId - セッションIDexecutionContext - コンテキストpublic void setEncryptor(Encryptor encryptor)
AesEncryptorが使用される。
暗号化のカスタマイズを行う場合は、このプロパティにEncryptor実装を設定する。encryptor - 暗号化クラスpublic void setParameterName(java.lang.String parameterName)
parameterName - 設定するパラメータ名