搭建好了spring-cloud整套服务后,开始优化时发现,需要在访问服务发现中心时添加登录功能,以保障安全,于是参考了spring-cloud官网的配置方法,配置后果然需要通过登录才可以访问注册中心,但是此时所有的微服务都无法注册到注册中心上,尝试各种方式去配置就是不行,最后发现问题出在了版本上,网上搜到的以及spring官网提供的文档并没有提及到security在新版本中添加了csrf过滤,csrf将微服务的注册也给过滤了,所以在微服务启动时控制台明明看到response=200,但又报403的错误.
此时只需要在eureka发现中心手动关闭csrf即可正常完成服务注册,且不影响登录注册中心.
这个坑藏得太深,弄了一个下午才找到原因.
@EnableWebSecurity
public class WebSecurityConfig extends WebSecurityConfigurerAdapter {
@Override
protected void configure(HttpSecurity http) throws Exception {
http.csrf().disable();//关闭csrf
super.configure(http);
}
}
最后说一下,我用的spring-boot版本是:
2.0.4.RELEASE
spring-cloud版本是:
Finchley.SR1
使用最新版本果然要谨慎啊,坑有点多,到现在为止踩过2个了,但新版在性能方面确实要好一些.