springsecurity认证机制的InvalidCSRFToken问题
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
springsecurity认证机制的InvalidCSRFToken问题
spring security在集成spring boot的微服务框架后,进⾏了cas认证和权限控制。
但是在请求过程中,发现了⼀个问题
1.关于错误
错误指出,请求中出现了不可⽤的CSRF令牌。
查阅资料后发现这是⼀个RESTful技术与CSRF(Cross-site request forgery跨站请求伪造)的冲突造成的,CSRF默认⽀持的⽅法:
GET|HEAD|TRACE|OPTIONS,不⽀持POST。
传统的session id容易被第三⽅窃取攻击,spring security4.0版本之后,引⼊了CSRF的概念。
spring security为了正确的区别合法的post请求,采⽤了token的机制。
过程⼤致为get请求会从服务器端拿到⼀个token,这个token被拿来当做header参数通过post请求传递⾄服务器。
服务器通过区分这个token值是否合法来判定是否是正常的post请求(⽽⾮第三⽅攻击)。
2.解决
spring Security 3默认关闭csrf,Spring Security 4默认启动了csrf。
开发环境⼿动关闭csrf
@Override
protected void configure(HttpSecurity http) throws Exception {
//访问控制内容。
http .csrf().disable();
}。