我正在尝试在struts2中开发一个应用程序,其中我有多个表单,可能有也可能没有相同的操作。为了避免CSRF,我还添加了带有这些表单的令牌,但一次只能使用一个令牌。如果我点击另一个提交按钮,那么我将重定向到为CSRF配置的错误页面。我被困在这里为什么会发生这种情况,我无法在同一页面上使用多个令牌,或者是否有任何解决方案。
请找到我已配置的struts2.xml代码。
<action name="expUsers" class="com.org.action.ExpUser">
<interceptor-ref name="CSRFStack"/>
<result name="invalid.token" type="tiles">csrfError</result>
<result name="success" type="stream">
<param name="contentDisposition">contentDisposition</param>
<param name="contentType">application/octet-stream</param>
<param name="inputName">inputStream</param>
</result>
<result name="failed" type="chain">csrfError</result>
</action>
下面我有以下虚拟表单示例,可以让您了解我在做什么。
<form id="form-1">
<s:token/>
....
</form>
<form id="form-2">
<s:token/>
....
</form>
<form id="form-3">
<s:token/>
....
</form>
... so on multiple forms with token.