Package nablarch.common.web.token
Annotation Interface OnDoubleSubmission
@Documented
@Target(METHOD)
@Retention(RUNTIME)
@Interceptor(Impl.class)
@Published
public @interface OnDoubleSubmission
二重サブミットを防止する
Interceptor
。
業務アクションハンドラのメソッドに付与することで、二重サブミット(同一リクエストの二重送信)のチェックを行う。
本インターセプタを使用するためには、トークン設定が必要である。
トークン設定はトークンの生成とHTMLへの埋め込みがある。
トークンの生成はUseToken
でできる。
HTMLへの埋め込みはリクエストに格納されたトークンをテンプレートエンジンでinput要素を組み立てればよい。
Thymeleafの例を示す。
<input type="hidden" name="nablarch_token" th:value="${nablarch_request_token}"/>
JSPを使用している場合はn:formタグでトークンを設定できる。
<n:form useToken="true">
<n:submit type="button" value="Submit" uri="/XXXXX" allowDoubleSubmission="false">
</n:form>
本インターセプタは、業務アクションハンドラに次のように実装する。
@OnDoubleSubmission(path = "XXX.jsp")
@OnError(type = ApplicationException.class, path = "forward://XXX.html") public HttpResponse handle(HttpRequest req, ExecutionContext ctx) { // 省略 }
-
Nested Class Summary
Modifier and TypeClassDescriptionstatic class
-
Optional Element Summary
Modifier and TypeOptional ElementDescription二重サブミットと判定した場合の遷移先画面に表示するエラーメッセージに使用するメッセージIDを返す。
個別にメッセージIDを変更する場合に指定する。
デフォルトでは、アプリケーション設定一覧表_presetで設定したエラーメッセージが使用される。二重サブミットと判定した場合の遷移先のリソースパスを返す。
個別に遷移先を変更する場合に指定する。
リソースパスは必須項目であり、指定しなかった場合はNullPointerException
が発生する。int
二重サブミットと判定した場合のレスポンスステータスを返す。 個別にレスポンスステータスを変更する場合に指定する。 デフォルトでは、BasicDoubleSubmissionHandler
のフィールドに定義されている400を返す。
-
Element Details
-
path
String path二重サブミットと判定した場合の遷移先のリソースパスを返す。
個別に遷移先を変更する場合に指定する。
リソースパスは必須項目であり、指定しなかった場合はNullPointerException
が発生する。- Default:
- ""
-
messageId
String messageId二重サブミットと判定した場合の遷移先画面に表示するエラーメッセージに使用するメッセージIDを返す。
個別にメッセージIDを変更する場合に指定する。
デフォルトでは、アプリケーション設定一覧表_presetで設定したエラーメッセージが使用される。- Default:
- ""
-
statusCode
int statusCode二重サブミットと判定した場合のレスポンスステータスを返す。 個別にレスポンスステータスを変更する場合に指定する。 デフォルトでは、BasicDoubleSubmissionHandler
のフィールドに定義されている400を返す。- Default:
- -1
-