配置登录和注销干系的信息
<security:http auto-config="true" use-expressions="true"> <!-- 拦截资源 pattern="/" 拦截所有的资源 access="hasanyrole('role1')" 表示只有role1这个角色可以访问资源 --> <security:intercept-url pattern="/" access="hasanyrole('role_user')"></security:intercept-url> <!-- 配置认证信息 login-page="/login.jsp" 自定义的登录页面 login-processing-url="/login" security中处理登录的要求 default-target-url="/home.jsp" 默认的跳转地址 authentication-failure-url="/failure.jsp" 登录失落败的跳转地址 --> <security:form-login login-page="/login.jsp" login-processing-url="/login" default-target-url="/home.jsp" authentication-failure-url="/failure.jsp" /> <!-- 配置退出的登录信息 --> <security:logout logout-url="/logout" logout-success-url="/login.jsp" /></security:http>
2.认证界面匿名访问
前面配置的
<security:intercept-url pattern="/" access="hasanyrole('role_user')"></security:intercept-url>
会使登录界面不可访问,以是我们须要方法
在这里插入图片描述
3.放过静态资源同样的系统的 js css 等静态资源文件也会被对应的过滤器拦截,以是也须要方法
在这里插入图片描述
4.登录测试启动做事我们访问登录试试
在这里插入图片描述
可以访问到,然后提交登录看看把稳表单设置
在这里插入图片描述
然后访问涌现了403缺点
在这里插入图片描述
三、关闭csrf拦截上面我们在账号和角色都精确的情形下,登录后涌现了 403缺点,缘故原由是由于 csrf过滤器拦截了,那为什么系统供应的登录界面没问题呢?缘故原由是如下
在这里插入图片描述
在系统供应的登录表单中隐蔽的有csrf干系的信息。这时我们可以关闭csrf过滤器,来实现登录事情
在这里插入图片描述
重启做事再测试就可以了
在这里插入图片描述
四、csrf防护上面我们通过关闭csrf过滤器实现了认证功能,但是系统将面临csrf攻击的风险,以是我们须要放开做事,同时也要能够完成认证。首先我们来看下CsrfFilter的源码
1.CsrfFilter源码查看在这里插入图片描述
this.requireCsrfProtectionMatcher.matches(request)方法
在这里插入图片描述
通过 GET HEAD TRACE OPTIONS 提交的数据不会 csrf 验证
2.放开过滤器前面关闭的我们须要放开
在这里插入图片描述
3.页面动态token导入security标签
在这里插入图片描述
在表单中利用,浸染和下面的同等
在这里插入图片描述
:ajax办法提交的时候利用
五、注销功能在home.jsp中添加注销链接
在这里插入图片描述
点击后涌现了404缺点缘故原由是:自定义的注销功能必须通过post办法提交才行,以是如下
在这里插入图片描述
在这里插入图片描述
涌现这个缘故原由是 csrf的缘故原由,加标签即可
在这里插入图片描述
搞定~