tomcat 从CSRFGuard 3.1.0迁移到4.0.0时,HttpSession中缺少CSRFToken属性

qlfbtfca  于 2022-11-13  发布在  其他
关注(0)|答案(1)|浏览(196)

我将我的项目从CSRFGuard 3.1.0迁移到4.0.0,我已经包括了csrf-session-extension和csrf-jsp-tag依赖项,因为它们是迁移所必需的。在对属性进行必要的更改后,我可以构建Maven应用程序并将其部署到tomcat服务器中。但是,在从数据库请求数据后,我收到以下错误:
在路径为上下文中为servlet [服务]调用Servlet.service()时抛出异常**com.proj.libs.core.common.exception.验证错误:验证错误:**在服务器安全性上的CSRF令牌无效。
我发现异常发生是因为我的HttpSession不包含CSRFToken属性,因此验证失败。只有当我从3.1.0开始在项目中使用CSRFGuard 4.0.0时才会发生异常。如何解决此问题?
我的属性文件:

org.owasp.csrfguard.TokenName=OWASP-CSRFTOKEN
org.owasp.csrfguard.SessionKey=OWASP-CSRFTOKEN
bq3bfh9z

bq3bfh9z1#

从csrfguard 4.x.x开始,我们没有在httpsession中存储csrftoken,所以我们必须将这些令牌存储在某个地方。我们可以在属性文件中配置存储选项。我选择了InMemoryImplementagtion方法。这里,我们的会话令牌存储在内存中。因此,我们可以使用会话密钥从内存存储中访问会话令牌。

相关问题