项目场景:
个人云盘项目 spring + mybatis + mysql + springsecurity 不知不觉间 已经学了这么多东西了(心酸谁知。。。泪目
问题描述:
在使用spring security进行调试的时候 报403forbidden
这两个bug花了我一天的时间。。。
原因分析:
- csrf打开 导致调试代码的时候POST 会被拦截
- 如果GET POST 都被拦截 那就说明是其他原因
解决方案:
问题1:再config中关闭csrf
.and()
.csrf()
.disable()
问题2:
在数据库中的role 表中 如果用 admin,user之类小写的 需要转换为ROLE_admin,ROLE_user
或者用大写 (据说没报错
设置的角色名会自动加上 ‘ ROLE_ ’ 前缀。
所以在数据库中将角色名设置为带 ‘ ROLE_ ’ 前缀的值便能成功访问限制的地址