遇到一个问题“开启Eureka服务端的安全认证后,客户端死活注册不到Eureka上”,已经尝试了以下办法,完全搞不定。。。
客户端出错的版本:
spring-boot:2.0.3.RELEASE
spring-cloud:Finchley.RELEASE
查看客户端报的错误:
cannot regist on known server
retrying on another server if available 401错误
spring:
profiles: peer1
security:
user:
name: test
password: 123456 roles: USER
1.查询资料,发现,高版本不再在Eureka服务端使用在配置文件(yml文件)中配置basic认证,如下边这样:
spring:
profiles: peer1
security:
user:
name: test
password: 123456 roles: USER
而是集成WebSecurityConfigurerAdapter类,然后重写configure方法来实现badic认证,这步做了,客户端还是注册不了。
2.又发现,说Eureka服务端需要关闭自我注册,也就是在yml文件中设置registerWithEureka:false,并且fetchRegistry:false。尝试了,发现还是不行。
3.又看到说Eureka高版本默认开启了csrf保护,需要关闭这个才行,尝试关闭:
http.csrf().disable();还是不行,看到另外一种写法:
http.csrf().ignoringAntMatchers("/eureka/**");也还是不行。
4.最后又边查资料,边观察,发现自己的客户端yml写的不对,eureka节点写在了spring节点下,这是不对的,应该把eureka节点写在直接靠边的位置,这样做就正常注册了。(之前就知道yml对格式要求很严谨,今天这坑踩的可是长记性了。)