引入
搭建的SpringCloud的Eureka添加了安全验证,但是其他的服务注册不上了。上网查了一下,原来是Spring Security启用csrf,然后会对URL请求进行token验证,如果请求中没有token,浏览器会任务是非法网页的请求,然后就会拒绝。
新版(Spring Cloud 2.0 以上)的security默认启用了csrf检验,要在eurekaServer端配置security的csrf检验为false;
解决方案
在EurekaServer端配置security的csrf检验为false;
- 在EurekaServer端增加一个配置类,并且继承WebSecurityConfigurerAdapter;
- 在类上添加 @EnableWebSecurity 注解;
- 重写父类的 configure(HttpSecurity http) 方法,关闭掉 csrf;
CSRF扩展
百度词条解释:
CSRF(Cross-site request forgery)跨站请求伪造,也被称为“One Click Attack”或者Session Riding,通常缩写为CSRF或者XSRF,是一种对网站的恶意利用。尽管听起来像跨站脚本(XSS),但它与XSS非常不同,XSS利用站点内的信任用户,而CSRF则通过伪装成受信任用户的请求来利用受信任的网站。与XSS攻击相比,CSRF攻击往往不大流行(因此对其进行防范的资源也相当稀少)和难以防范,所以被认为比XSS更具危险性。
小编不是很了解这个,如果大家想了解的话,可以搜索一下哟,推荐篇博客:https://www.baidu.com/link?url=rQdjhJwl7OIGgga0Msqaz4AMXMo9xAMcMMW0j1UvUpzZ6XYG_kK1C9zt6HO0yBfzT-FlAYZzDPylkep5ezNY1_&wd=&eqid=c6958c92001b93ce000000035d2b1cd8