Class HiddenStore
java.lang.Object
nablarch.common.web.session.SessionStore
nablarch.common.web.session.store.HiddenStore
HTMLのinputタグ(type="hidden")を格納先とする保存するデータをひとつづつ暗号化するのではなく、保存するデータ全体をまとめて暗号化する
保存するデータにセッションIDを含めておき、復元時のセッションIDと一致することを確認する
5u13以前のHiddenStoreクラスとは直列化、暗号化の方法など
内部的な処理やデータ構造は異なるが、外部的な振る舞いは互換性がある。
デフォルトのストア名は"hidden"である。
以下の構造でデータをストアに格納する。
SessionStore
拡張クラス。
5u13以前のHiddenStoreクラスに以下の追加変更を行っている。
| 項目 | 長さ |
|--------------------------------------------------+-------|
| セッションIDバイト長 | 4Byte |
| セッションID | 可変 |
| セッションエントリ(SessionEntry
のリスト) | 可変 |
保存(save(String, List, ExecutionContext)
時にセッションIDを格納しておき、
復元(load(String, ExecutionContext)
)時にセッションIDが一致することを確認する。
これにより、他ユーザのデータを流用することを防止する。
復元時点でセッションタイムアウトが発生している場合は、
復元処理がスキップされるため(save(String, List, ExecutionContext)
save}が呼ばれない)
セッションIDの変更が改ざんに誤検知されることはない。- Author:
- TIS
-
Nested Class Summary
Modifier and TypeClassDescriptionstatic class
HiddenStoreのロードに失敗した場合に送出する例外。 -
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionvoid
delete
(String sessionId, ExecutionContext executionContext) セッションの内容をストアから削除する。void
invalidate
(String sessionId, ExecutionContext executionContext) セッションストアを無効にする。load
(String currentSessionId, ExecutionContext executionContext) セッションの内容をストアからロードする。 セッションの内容が存在しない場合は空リストを返す。void
save
(String sessionId, List<SessionEntry> entries, ExecutionContext executionContext) セッションの内容をストアに保存する。void
setEncryptor
(Encryptor encryptor) 暗号化クラスを設定する。 デフォルトではAesEncryptor
が使用される。 暗号化のカスタマイズを行う場合は、このプロパティにEncryptor
実装を設定する。void
setParameterName
(String parameterName) パラメータ名を設定する。Methods inherited from class nablarch.common.web.session.SessionStore
decode, encode, getExpiresMilliSeconds, getName, getStateEncoder, isExtendable, setExpires, setExpires, setName, setStateEncoder
-
Constructor Details
-
HiddenStore
public HiddenStore()コンストラクタ。
-
-
Method Details
-
save
セッションの内容をストアに保存する。 本クラスでは、セッションIDとセッションエントリ全体を暗号化した結果を保存する。- Specified by:
save
in classSessionStore
- Parameters:
sessionId
- セッションIDentries
- セッションエントリリストexecutionContext
- コンテキスト
-
load
Description copied from class:SessionStore
セッションの内容をストアからロードする。 セッションの内容が存在しない場合は空リストを返す。- Specified by:
load
in classSessionStore
- Parameters:
currentSessionId
- セッションIDexecutionContext
- コンテキスト- Returns:
- セッションエントリリスト
-
delete
Description copied from class:SessionStore
セッションの内容をストアから削除する。- Specified by:
delete
in classSessionStore
- Parameters:
sessionId
- セッションIDexecutionContext
- コンテキスト
-
invalidate
Description copied from class:SessionStore
セッションストアを無効にする。- Specified by:
invalidate
in classSessionStore
- Parameters:
sessionId
- セッションIDexecutionContext
- コンテキスト
-
setEncryptor
暗号化クラスを設定する。 デフォルトではAesEncryptor
が使用される。 暗号化のカスタマイズを行う場合は、このプロパティにEncryptor
実装を設定する。- Parameters:
encryptor
- 暗号化クラス
-
setParameterName
パラメータ名を設定する。- Parameters:
parameterName
- 設定するパラメータ名
-