尝试将项目升级至Struts2+Hibernate4+Spring4+Spring Security4环境时,出现以下异常:
java.lang.NoClassDefFoundError: org/springframework/web/servlet/support/RequestDataValueProcessor
java.lang.ClassNotFoundException: org.springframework.web.servlet.support.RequestDataValueProcessor
?
经排查,刚异常缺失的类是spring-webmvc的一个接口,但由于项目并没有使用SpringMVC,又不想引入SpringMVC相关的jar包,故而翻查Spring Security官方文档,于是发现以下片段:
?
发现Spring Security 4默认启用了CSRF保护功能,该功能在Spring Security 3时就已经存在,默认是不启用。由于项目并没有用到CSRF功能,按照官方文档,在XML文件中加入<csrf disabled="true" />标签,将CSRF保护功能禁用,问题就解决了!
?
?
Spring Security 4默认启用CSRF保护 SSH框架启动报错
原文:http://mwzero.iteye.com/blog/2236668