Package nablarch.common.web.handler
Class NablarchTagHandler
java.lang.Object
nablarch.common.web.handler.NablarchTagHandler
- All Implemented Interfaces:
Handler<HttpRequest,,HttpResponse> HttpRequestHandler
Nablarchのカスタムタグ機能に必要なリクエスト処理を行うハンドラ。
このハンドラは、1リクエストにつき一度だけ下記の処理を行う。 内部フォワードにより1リクエストにつき複数回呼ばれても初回のみ処理を行う。
このハンドラを使用する場合は、改竄を検知した場合に遷移する画面とステータスを必ずプロパティで指定する必要がある。
HTTPアクセスログの出力は、
このハンドラは、1リクエストにつき一度だけ下記の処理を行う。 内部フォワードにより1リクエストにつき複数回呼ばれても初回のみ処理を行う。
- ボタン又はリンク毎のパラメータ変更機能を実現するために、リクエストに変更パラメータを設定する。
- リクエストにcheckboxタグのチェックなしに対応する値を設定する。
- hiddenタグの暗号化機能に対応する改竄チェックと復号を行う。
- HTTPアクセスログのリクエストパラメータを出力する。
- カスタムタグのデフォルト値をJSPで参照できるように、
CustomTagConfigをリクエストスコープに設定する。
このハンドラを使用する場合は、改竄を検知した場合に遷移する画面とステータスを必ずプロパティで指定する必要がある。
HTTPアクセスログの出力は、
HttpAccessLogUtilに委譲する。-
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final StringCustomTagConfigをリクエストスコープに格納する際に使用するキーstatic final String復号したリクエストパラメータをリクエストスコープに設定する属性名 -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionhandle(HttpRequest request, ExecutionContext context) HTTPリクエストに対する処理を実行する。protected voidrestoreKeyValueSet(HttpRequest request) 複合キーの値を復元する。void改竄を検知した場合に送信する画面のリソースパスを設定する。voidsetSessionExpirePath(String sessionExpirePath) セッションから暗号化鍵情報が取得出来なかった場合に表示する画面のリソースパスを設定する。
この値を設定しなかった場合、 path プロパティに設定した改竄エラー画面が表示される。voidsetSessionExpireStatusCode(int sessionExpireStatusCode) セッションから情報が取得出来なかった場合のレスポンスステータスを設定する。voidsetStatusCode(int statusCode) 改竄を検知した場合のレスポンスステータスを設定する。
デフォルトは400。protected voidwriteParametersLog(HttpRequest request, ExecutionContext context) HTTPアクセスログのリクエストパラメータを出力する。
-
Field Details
-
DECRYPTED_PARAMS
復号したリクエストパラメータをリクエストスコープに設定する属性名- See Also:
-
CUSTOM_TAG_CONFIG_KEY
CustomTagConfigをリクエストスコープに格納する際に使用するキー- See Also:
-
-
Constructor Details
-
NablarchTagHandler
public NablarchTagHandler()
-
-
Method Details
-
setPath
改竄を検知した場合に送信する画面のリソースパスを設定する。- Parameters:
path- 改竄を検知した場合に送信する画面のリソースパス
-
setSessionExpirePath
セッションから暗号化鍵情報が取得出来なかった場合に表示する画面のリソースパスを設定する。
この値を設定しなかった場合、 path プロパティに設定した改竄エラー画面が表示される。- Parameters:
sessionExpirePath- セッションから情報が取得出来なかった場合に表示する画面のリソースパス
-
setStatusCode
public void setStatusCode(int statusCode) 改竄を検知した場合のレスポンスステータスを設定する。
デフォルトは400。- Parameters:
statusCode- 改竄を検知した場合のレスポンスステータス
-
setSessionExpireStatusCode
public void setSessionExpireStatusCode(int sessionExpireStatusCode) セッションから情報が取得出来なかった場合のレスポンスステータスを設定する。- Parameters:
sessionExpireStatusCode- セッションから情報が取得出来なかった場合のレスポンスステータス
-
handle
HTTPリクエストに対する処理を実行する。
1リクエストにつき一度だけ下記の処理を順に行う。 内部フォワードにより1リクエストにつき複数回呼ばれても初回のみ処理を行う。- リクエストに変更パラメータを設定する。
- "nablarch_tag_config"という変数名でリクエストスコープに
CustomTagConfigを設定する。 - hiddenタグの値を復号し、リクエストパラメータに設定する。
復号では、改竄チェックを行い、改竄を検知した場合は指定された画面に遷移する。
復号が成功した場合は、次のハンドラに処理を委譲する。
復号処理は、
HiddenEncryptionUtil.decryptHiddenValues(ExecutionContext, String)に移譲する。 - HTTPアクセスログのリクエストパラメータを出力する。
- Specified by:
handlein interfaceHandler<HttpRequest,HttpResponse> - Specified by:
handlein interfaceHttpRequestHandler- Parameters:
request- HTTPリクエストオブジェクトcontext- サーバサイド実行コンテキストオブジェクト- Returns:
- HTTPレスポンスオブジェクト
-
restoreKeyValueSet
複合キーの値を復元する。- Parameters:
request-HttpRequest
-
writeParametersLog
protected void writeParametersLog(HttpRequest request, ExecutionContext context) throws ClassCastException HTTPアクセスログのリクエストパラメータを出力する。- Parameters:
request-HttpRequestcontext-ExecutionContext- Throws:
ClassCastException- context の型がServletExecutionContext で無い場合。
-