SpringSecurity退出登录报错,logout,404,CSRF防护

1、最开始我也不知道为什么写了退出登录的配置,却退出失败

退出登录logout实现方式

http.logout().logoutUrl("/logout").
                logoutSuccessUrl("/test/hello").permitAll();
  • logoutUrl:表示退出的路径
  • logoutSuccessUrl:表示退出成功之后去的页面

报错的页面
在这里插入图片描述

2、解决方式

出错原因:

SpringSecurity3.2开始,默认会启动CSRF防护,一旦启动了CSRF防护,“/logout” 需要用post的方式提交,SpringSecurity才能过滤。

方式一:配置文件直接关闭CSRF防护

http.formLogin().and().csrf().disable();  //关闭csrf防护

方式二:官方建议使用POST请求退出登陆,并携带CRSF令牌

http.logout().logoutRequestMatcher(new AntPathRequestMatcher("/logout")).
                logoutSuccessUrl("/test/hello").permitAll();

3、其他

3.1 当关闭CSRF防护时,部分的页面可能会无法刷新,甚至报错
在这里插入图片描述

<meta name="_csrf" th:content="${_csrf.token}"/>
<meta name="_csrf_header" th:content="${_csrf.headerName}"/>

这两个代码是做CSRF防护的,深入了解可以去网上查下

4、参考文档:

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值