将 Spring Security 升级到 3.2.0.RELEASE 不再在 Spring taglib 中提供 CSRF 令牌
Posted
技术标签:
【中文标题】将 Spring Security 升级到 3.2.0.RELEASE 不再在 Spring taglib 中提供 CSRF 令牌【英文标题】:Upgrading Spring Security to 3.2.0.RELEASE no longer provides CSRF token in Spring taglib 【发布时间】:2014-02-07 08:34:04 【问题描述】:我的项目使用 Spring Security 3.2.0.RC2,而我的 JSP 使用 Spring taglib 的 form:form 标签自动将 CSRF 令牌插入到我的表单中。
升级到 Spring Security 3.2.0.RELEASE 后,我发现 form:form 标签不再自动将 CSRF 令牌插入到我的表单中,我现在必须通过将其放置在我的表单中来手动添加它:
有没有其他人遇到过同样的问题?如果是这样,您为解决方法做了什么?谢谢。
【问题讨论】:
【参考方案1】:您需要确保使用@EnableWebMvcSecurity
注释而不是Hello Spring MVC Security Java Config 中所述的@EnableWebSecurity
注释。添加新注解的原因是为了解析SEC-2436。您会注意到添加了 SEC-2463 是为了在参考的 CSRF 部分中更好地记录这一点。
【讨论】:
太好了,谢谢罗布的回答。那成功了。我没有意识到在从 Spring Security 3.2.0.RC2 到 3.2.0.RELEASE 的更改中,要使用的注释已更改为 @EnableWebMvcSecurity;我一定在发行说明中错过了这一点。再次感谢。 没问题。由于更新文档的 JIRA 暗示这个细节并不像应有的那么明显。以上是关于将 Spring Security 升级到 3.2.0.RELEASE 不再在 Spring taglib 中提供 CSRF 令牌的主要内容,如果未能解决你的问题,请参考以下文章
Spring Security 3.2 - 将注册表单添加到登录页面
从 stark-security 升级到 spring 安全插件
将 Spring Security SAML 升级到 1.0 版本需要啥
将 Spring Security 升级到 3.2.0.RELEASE 不再在 Spring taglib 中提供 CSRF 令牌