1

我们如何在 struts2 的有效会话期间拥有持久的令牌值(或表单密钥)?当<s:token/>在表单中时,提交表单后,令牌的值会发生变化。这导致用户无法打开 2 个浏览器选项卡并使用它们(由于令牌在每个表单中的唯一值,只有一个选项卡处于活动状态)。如何使用 struts2 解决这个问题并在每个会话中拥有持久的令牌值(不是每个表单)

我认为覆盖拦截器可以解决问题,但我想考虑其他选项

4

2 回答 2

0

Don't use token at all

如果每个会话都需要某些东西,请使用会话本身。令牌旨在防止请求重放攻击。因此,每次会话仅具有一个是没有意义的。

于 2013-10-02T21:27:06.523 回答
0

我也有同样的问题,在我的功能中有在新标签页中打开的预览。用户可以多次预览,所以它抛出了一个令牌异常。在我写的函数开始时,我得到了一个代码:

String downloadTokenName = TokenHelper.getTokenName();
String downloadToken = TokenHelper.getToken(downloadTokenName);

在最后的函数结束时,我将令牌值重新分配为:

TokenHelper.setSessionToken(downloadTokenName, downloadToken);

它解决了我的问题。

于 2016-10-17T14:39:04.510 回答