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 - 設定するパラメータ名