spring security框架提供的默认登录页面,会有一个name属性值为_csrf的隐藏域:Spring Security :CsrfFilter过滤器-LMLPHP

这是框架在用户访问登录页面之前就生成的,保存在内存中,当用户提交表单的时候会跟着一起提交:Spring Security :CsrfFilter过滤器-LMLPHP

然后会经过spring security框架resources目录下配置文件spring-security.xml中的CsrfFilter过滤器:Spring Security :CsrfFilter过滤器-LMLPHP

检查表单提交的_csrf隐藏域的value与内存中保存的的是否一致,如果一致框架则认为当然登录页面是安全的,如果不一致,会报403forbidden错误。但是使用自定义的登录页面时,需要关闭CsrfFilter过滤器,因为自定义的页面并没有那样的一个隐藏域。

05-11 11:03