Class HiddenEncryptionUtil

java.lang.Object
nablarch.common.web.hiddenencryption.HiddenEncryptionUtil

public final class HiddenEncryptionUtil extends Object
hiddenタグの暗号化機能で使用するユーティリティ。
 このユーティリティでは、Encryptorインタフェースを実装したクラスに、暗号化と復号の処理を移譲する。
 デフォルトではAesEncryptorを使用する。
 暗号化と復号に使用するクラスを変更したい場合は、"hiddenEncryptor"という名前でリポジトリに登録する。
 
Author:
Kiyohito Itoh
  • Field Details

    • KEY_HIDDEN_NAME

      public static final String KEY_HIDDEN_NAME
      暗号化したhiddenタグの値を出力する際に使用する名前
      See Also:
    • KEY_SUBMIT_NAME

      public static final String KEY_SUBMIT_NAME
      サブミットされた要素を識別するために使用するパラメータの名前
      See Also:
    • KEY_HIDDEN_REQUEST_IDS_NAME

      public static final String KEY_HIDDEN_REQUEST_IDS_NAME
      暗号化したhiddenタグの値にリクエストIDを含める際に使用するname属性
      See Also:
    • KEY_HIDDEN_SUBMIT_NAME_PREFIX

      public static final String KEY_HIDDEN_SUBMIT_NAME_PREFIX
      暗号化したhiddenタグの値にサブミット情報を含める際に使用するname属性のプレフィックス
      See Also:
    • KEY_NEEDS_ENCRYPTION

      public static final String KEY_NEEDS_ENCRYPTION
      現在のリクエストに対して、hiddenタグの暗号化が必要であることを示すリクエストパラメータ名
      See Also:
  • Method Details

    • decryptHiddenValues

      public static Map<String,List<String>> decryptHiddenValues(ExecutionContext context, String value) throws TamperingDetectedException, KeyEncryptionContextNotFoundException
      hiddenタグの値を復号する。
       復号では、暗号化時に埋め込んだハッシュ値とリクエストID文字列を使用して改竄チェックを行う。
       暗号化の仕様については、encryptHiddenValues(PageContext, List, Map)を参照。
       
      Parameters:
      context - ExecutionContext
      value - hiddenタグの値
      Returns:
      hiddenタグの値を復号した結果
      Throws:
      TamperingDetectedException - 改竄を検知した場合。
      KeyEncryptionContextNotFoundException - 暗号化キーをセッションから取得出来なかった場合。
    • encryptHiddenValues

      public static String encryptHiddenValues(jakarta.servlet.jsp.PageContext pageContext, List<String> requestIds, Map<String,List<String>> values)
      hiddenタグの値を暗号化する。
       暗号化は、下記の仕様で行う。
       ・リクエストIDを連結しリクエストID文字列を作成する。
         リクエストID文字列は、復号時に値の置き換えによる改竄を検知するために、hiddenタグの値に追加する。
       ・全てのhiddenタグの値を連結し、hidden文字列を作成する。
       ・"nablarch_hidden"+hidden文字列からハッシュ値を生成する。
         ハッシュ値は、復号時に値の書き換えによる改竄を検知するために使用する。
         "nablarch_hidden"は、暗号化した値をhiddenタグで出力する際に使用するname属性の値である。
       ・ハッシュ値+hidden文字列を暗号化した結果をBASE64でエンコードする。
       
      Parameters:
      pageContext - ページコンテキスト
      requestIds - リクエストID
      values - hiddenタグの値
      Returns:
      hiddenタグの値を暗号化した結果