Java: Struts2: SessionToken 二重送信防止機能
September 1, 2009
by reciente
0 comments
Struts2 には二重送信防止機能も付いている。
トークンを発行してセッションに保存した後、一度だけそのトークンでのActionの実行を許可する。という内容。
tokenとtokenSessionの二つがあって、tokenSessionの方は、二重送信後にも一度目の送信結果画面を表示してくれる。
今のところ、tokenSessionしか使っていないので、そっちの設定例を。
struts.xml
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN" "http://struts.apache.org/dtds/struts-2.0.dtd">
<struts>
<constant name="struts.objectFactory" value="spring" />
<constant name="struts.devMode" value="false" />
<package name="mypackage" extends="struts-default">
<interceptors>
<interceptor-stack name="myStack">
<interceptor-ref name="tokenSession">
<param name="includeMethods">add</param>
</interceptor-ref>
<interceptor-ref name="defaultStack" />
</interceptor-stack>
</interceptors>
<default-interceptor-ref name="myStack" />
<action name="act" class="Action">
<result name="invalid.token" type="redirectAction">/hoge</result>
</action>
</package>
</struts>
JSP側
<s:form action="user_add"> <s:token/> : </s:form>
Action単位でも設定できるので、詳しくはこちらを。
TokenInterceptorの使い方
Token Session Store Interceptorの使い方