【发布时间】:2016-03-18 04:55:12
【问题描述】:
我有一个使用 Spring Security 4.0.1 版和 Spring 4.1.6 版的 Web 应用程序。
在网络应用程序的每个页面中,我都有
<input type="hidden" name="${_csrf.parameterName}" value="${_csrf.token}"/>
将 CSRF 令牌发送到服务器的参数。现在我的问题是,如果我看到我有的jsp的源代码
<input type="hidden" name="" value=""/>
因此令牌不会发送到服务器,并且 post 操作会导致消息 HTTP 状态 405 - 不支持请求方法“POST”
如果我在 Tomcat 7.0.5.x 上部署相同的 Web 应用程序,一切正常,它在 WAS 7、WAS 8.5 和 Jboss EAP 6.4 中也能正常工作。
我不明白为什么在这个版本的 Tomcat (7.0.28) 上,我从网站下载,没有更改任何配置等,Spring Security 提供的 CSRF 保护不起作用。
【问题讨论】:
-
Tomcat 7.0.28? -- 你知道当前的Tomcat 7版本是7.0.67!
-
是的,我知道,但我们的一个客户有那个版本(我有互联网连接,我可以在谷歌上写 tomcat :-)),现在我要更新它,但它不会这并不容易,因为那里有其他应用程序在运行,所以我们必须保证一切正常。我的目的是了解发生了什么
-
说实话,我不相信问题出在 tromcat 版本上。
-
正如我之前写的,将 Tomcat 版本升级到最新版本解决了这个问题。
-
当然你可以相信这不是真的......
标签: spring spring-security tomcat7 csrf-protection