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, setStateEncoder
public void save(java.lang.String sessionId, java.util.List<SessionEntry> entries, ExecutionContext executionContext)
save
in class SessionStore
sessionId
- セッションIDentries
- セッションエントリリストexecutionContext
- コンテキストpublic java.util.List<SessionEntry> load(java.lang.String currentSessionId, ExecutionContext executionContext)
SessionStore
load
in class SessionStore
currentSessionId
- セッションIDexecutionContext
- コンテキストpublic void delete(java.lang.String sessionId, ExecutionContext executionContext)
SessionStore
delete
in class SessionStore
sessionId
- セッションIDexecutionContext
- コンテキストpublic void invalidate(java.lang.String sessionId, ExecutionContext executionContext)
SessionStore
invalidate
in class SessionStore
sessionId
- セッションIDexecutionContext
- コンテキストpublic void setEncryptor(Encryptor encryptor)
AesEncryptor
が使用される。
暗号化のカスタマイズを行う場合は、このプロパティにEncryptor
実装を設定する。encryptor
- 暗号化クラスpublic void setParameterName(java.lang.String parameterName)
parameterName
- 設定するパラメータ名