Class HiddenStore

java.lang.Object
nablarch.common.web.session.SessionStore
nablarch.common.web.session.store.HiddenStore

public class HiddenStore extends SessionStore
HTMLのinputタグ(type="hidden")を格納先とするSessionStore拡張クラス。 5u13以前のHiddenStoreクラスに以下の追加変更を行っている。
     
  • 保存するデータをひとつづつ暗号化するのではなく、保存するデータ全体をまとめて暗号化する
  • 保存するデータにセッションIDを含めておき、復元時のセッションIDと一致することを確認する
  • 5u13以前のHiddenStoreクラスとは直列化、暗号化の方法など 内部的な処理やデータ構造は異なるが、外部的な振る舞いは互換性がある。 デフォルトのストア名は"hidden"である。 以下の構造でデータをストアに格納する。
     | 項目                                             | 長さ  |
     |--------------------------------------------------+-------|
     | セッションIDバイト長                         | 4Byte |
     | セッションID                                     | 可変  |
     | セッションエントリ(SessionEntryのリスト) | 可変  |
     
    保存(save(String, List, ExecutionContext)時にセッションIDを格納しておき、 復元(load(String, ExecutionContext))時にセッションIDが一致することを確認する。 これにより、他ユーザのデータを流用することを防止する。 復元時点でセッションタイムアウトが発生している場合は、 復元処理がスキップされるため(save(String, List, ExecutionContext) save}が呼ばれない) セッションIDの変更が改ざんに誤検知されることはない。
    • Constructor Details

      • HiddenStore

        public HiddenStore()
        コンストラクタ。
    • Method Details

      • save

        public void save(String sessionId, List<SessionEntry> entries, ExecutionContext executionContext)
        セッションの内容をストアに保存する。 本クラスでは、セッションIDとセッションエントリ全体を暗号化した結果を保存する。
        Specified by:
        save in class SessionStore
        Parameters:
        sessionId - セッションID
        entries - セッションエントリリスト
        executionContext - コンテキスト
      • load

        public List<SessionEntry> load(String currentSessionId, ExecutionContext executionContext)
        Description copied from class: SessionStore
        セッションの内容をストアからロードする。 セッションの内容が存在しない場合は空リストを返す。
        Specified by:
        load in class SessionStore
        Parameters:
        currentSessionId - セッションID
        executionContext - コンテキスト
        Returns:
        セッションエントリリスト
      • delete

        public void delete(String sessionId, ExecutionContext executionContext)
        Description copied from class: SessionStore
        セッションの内容をストアから削除する。
        Specified by:
        delete in class SessionStore
        Parameters:
        sessionId - セッションID
        executionContext - コンテキスト
      • invalidate

        public void invalidate(String sessionId, ExecutionContext executionContext)
        Description copied from class: SessionStore
        セッションストアを無効にする。
        Specified by:
        invalidate in class SessionStore
        Parameters:
        sessionId - セッションID
        executionContext - コンテキスト
      • setEncryptor

        public void setEncryptor(Encryptor encryptor)
        暗号化クラスを設定する。 デフォルトではAesEncryptorが使用される。 暗号化のカスタマイズを行う場合は、このプロパティにEncryptor実装を設定する。
        Parameters:
        encryptor - 暗号化クラス
      • setParameterName

        public void setParameterName(String parameterName)
        パラメータ名を設定する。
        Parameters:
        parameterName - 設定するパラメータ名