public final class HiddenEncryptionUtil
extends java.lang.Object
このユーティリティでは、Encryptorインタフェースを実装したクラスに、暗号化と復号の処理を移譲する。 デフォルトではAesEncryptorを使用する。 暗号化と復号に使用するクラスを変更したい場合は、"hiddenEncryptor"という名前でリポジトリに登録する。
| Modifier and Type | Field and Description | 
|---|---|
static java.lang.String | 
KEY_HIDDEN_NAME
暗号化したhiddenタグの値を出力する際に使用する名前 
 | 
static java.lang.String | 
KEY_HIDDEN_REQUEST_IDS_NAME
暗号化したhiddenタグの値にリクエストIDを含める際に使用するname属性 
 | 
static java.lang.String | 
KEY_HIDDEN_SUBMIT_NAME_PREFIX
暗号化したhiddenタグの値にサブミット情報を含める際に使用するname属性のプレフィックス 
 | 
static java.lang.String | 
KEY_NEEDS_ENCRYPTION
現在のリクエストに対して、hiddenタグの暗号化が必要であることを示すリクエストパラメータ名 
 | 
static java.lang.String | 
KEY_SUBMIT_NAME
サブミットされた要素を識別するために使用するパラメータの名前 
 | 
| Modifier and Type | Method and Description | 
|---|---|
static java.util.Map<java.lang.String,java.util.List<java.lang.String>> | 
decryptHiddenValues(ExecutionContext context,
                   java.lang.String value)
hiddenタグの値を復号する。 
 | 
static java.lang.String | 
encryptHiddenValues(javax.servlet.jsp.PageContext pageContext,
                   java.util.List<java.lang.String> requestIds,
                   java.util.Map<java.lang.String,java.util.List<java.lang.String>> values)
hiddenタグの値を暗号化する。 
 | 
public static final java.lang.String KEY_HIDDEN_NAME
public static final java.lang.String KEY_SUBMIT_NAME
public static final java.lang.String KEY_HIDDEN_REQUEST_IDS_NAME
public static final java.lang.String KEY_HIDDEN_SUBMIT_NAME_PREFIX
public static final java.lang.String KEY_NEEDS_ENCRYPTION
public static java.util.Map<java.lang.String,java.util.List<java.lang.String>> decryptHiddenValues(ExecutionContext context, java.lang.String value) throws TamperingDetectedException, KeyEncryptionContextNotFoundException
 復号では、暗号化時に埋め込んだハッシュ値とリクエストID文字列を使用して改竄チェックを行う。
 暗号化の仕様については、encryptHiddenValues(PageContext, List, Map)を参照。
 context - ExecutionContextvalue - hiddenタグの値TamperingDetectedException - 改竄を検知した場合。KeyEncryptionContextNotFoundException - 暗号化キーをセッションから取得出来なかった場合。public static java.lang.String encryptHiddenValues(javax.servlet.jsp.PageContext pageContext,
                                                   java.util.List<java.lang.String> requestIds,
                                                   java.util.Map<java.lang.String,java.util.List<java.lang.String>> values)
暗号化は、下記の仕様で行う。 ・リクエストIDを連結しリクエストID文字列を作成する。 リクエストID文字列は、復号時に値の置き換えによる改竄を検知するために、hiddenタグの値に追加する。 ・全てのhiddenタグの値を連結し、hidden文字列を作成する。 ・"nablarch_hidden"+hidden文字列からハッシュ値を生成する。 ハッシュ値は、復号時に値の書き換えによる改竄を検知するために使用する。 "nablarch_hidden"は、暗号化した値をhiddenタグで出力する際に使用するname属性の値である。 ・ハッシュ値+hidden文字列を暗号化した結果をBASE64でエンコードする。
pageContext - ページコンテキストrequestIds - リクエストIDvalues - hiddenタグの値