Class HiddenEncryptionUtil
java.lang.Object
nablarch.common.web.hiddenencryption.HiddenEncryptionUtil
hiddenタグの暗号化機能で使用するユーティリティ。
このユーティリティでは、Encryptor
インタフェースを実装したクラスに、暗号化と復号の処理を移譲する。 デフォルトではAesEncryptor
を使用する。 暗号化と復号に使用するクラスを変更したい場合は、"hiddenEncryptor"という名前でリポジトリに登録する。
- Author:
- Kiyohito Itoh
-
Field Summary
Modifier and TypeFieldDescriptionstatic final String
暗号化したhiddenタグの値を出力する際に使用する名前static final String
暗号化したhiddenタグの値にリクエストIDを含める際に使用するname属性static final String
暗号化したhiddenタグの値にサブミット情報を含める際に使用するname属性のプレフィックスstatic final String
現在のリクエストに対して、hiddenタグの暗号化が必要であることを示すリクエストパラメータ名static final String
サブミットされた要素を識別するために使用するパラメータの名前 -
Method Summary
Modifier and TypeMethodDescriptiondecryptHiddenValues
(ExecutionContext context, String value) hiddenタグの値を復号する。static String
encryptHiddenValues
(jakarta.servlet.jsp.PageContext pageContext, List<String> requestIds, Map<String, List<String>> values) hiddenタグの値を暗号化する。
-
Field Details
-
KEY_HIDDEN_NAME
暗号化したhiddenタグの値を出力する際に使用する名前- See Also:
-
KEY_SUBMIT_NAME
サブミットされた要素を識別するために使用するパラメータの名前- See Also:
-
KEY_HIDDEN_REQUEST_IDS_NAME
暗号化したhiddenタグの値にリクエストIDを含める際に使用するname属性- See Also:
-
KEY_HIDDEN_SUBMIT_NAME_PREFIX
暗号化したhiddenタグの値にサブミット情報を含める際に使用するname属性のプレフィックス- See Also:
-
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
- リクエストIDvalues
- hiddenタグの値- Returns:
- hiddenタグの値を暗号化した結果
-