Token Interceptor
This page last changed on May 19, 2006 by scud.
这 个拦截器可以保证一个令牌对应一个请求。确保后退按钮和两次提交不会产生不希望的效果。 例如你可以使用这个来防止粗心的用户在在线商店点了两下"结帐"按钮。这个拦截器使用了非常简单的机制来处理非法令牌:返回一个 invliad.token的结果,这样你就可以在action配置中做映射了。一个复杂一些的实现是 TokenSessionStoreInterce ptor, 可以在发现非法令牌时提供更好的处理逻辑。
注意: 为了设置表单的令牌,你必须使用token标签。 这个标签放在表单中,并且这个表单是提交到受这个拦截器保护的action:任何不提供令牌(使用token标签产生的)的请求将被处理为非法请求
国际化注意事项:这个拦截器用下面的键作为错误信息。
注意: 因为这个拦截器是扩展于MethodFilterInterceptor, 所以可以决定在action中的哪些方法上应用它。更多信息参见MethodFilterInterceptor
参数
无
扩展
一 般情况下用户不必扩展这个拦截器,TokenSessionStoreInterce ptor扩展了这个拦截器。其中的protected方法
handleInvalidToken和handleValidToken可以用来处理更有意义的逻辑,就像
TokenSessionStoreInterce ptor做的那样。
例子
<action name="someAction" class="com.examples.SomeAction">
<interceptor-ref
name="token"/>
<interceptor-ref
name="basicStack"/>
<result
name="success">good_result.ftl</result>
</action>
<-- 在这个例子中,action的myMethod方法不会做令牌检查 -->
<action name="someAction" class="com.examples.SomeAction">
<interceptor-ref
name="token">
<param
name="excludeMethods">myMethod</param>
</interceptor-ref
name="token"/>
<interceptor-ref
name="basicStack"/>
<result
name="success">good_result.ftl</result>
</action>
This page last changed on May 19, 2006 by scud.
这 个拦截器可以保证一个令牌对应一个请求。确保后退按钮和两次提交不会产生不希望的效果。 例如你可以使用这个来防止粗心的用户在在线商店点了两下"结帐"按钮。这个拦截器使用了非常简单的机制来处理非法令牌:返回一个 invliad.token的结果,这样你就可以在action配置中做映射了。一个复杂一些的实现是 TokenSessionStoreInterce
注意: 为了设置表单的令牌,你必须使用token标签。 这个标签放在表单中,并且这个表单是提交到受这个拦截器保护的action:任何不提供令牌(使用token标签产生的)的请求将被处理为非法请求
国际化注意事项:这个拦截器用下面的键作为错误信息。
注意: 因为这个拦截器是扩展于MethodFilterInterceptor, 所以可以决定在action中的哪些方法上应用它。更多信息参见MethodFilterInterceptor
参数
无
扩展
一 般情况下用户不必扩展这个拦截器,TokenSessionStoreInterce
例子
<action name="someAction" class="com.examples.SomeAction">
</action>
<-- 在这个例子中,action的myMethod方法不会做令牌检查 -->
<action name="someAction" class="com.examples.SomeAction">
</action>