在對eureka注冊中心服務端添加安全驗證后,新版本springcloud出現一個問題就是,在客戶端注冊到服務中心時報了一個錯:Cannot execute request on any known server,重新仔細看了一下官方文檔Securing The Eureka Server部分得以解決。
添加安全驗證:https://www.cnblogs.com/zrk3/p/springcloud_securing_eurekaserver.html
一、官方文檔
大意(英語不好,見諒):
只需通過Spring -boot-starter- security將Spring Security添加到服務路徑中,就可以保護Eureka服務。默認情況下,當Spring Security位於類路徑上時,它將要求在每次向應用程序發送請求時都發送一個有效的CSRF令牌。Eureka客戶機通常不會擁有一個有效的跨站點請求偽造令牌(CSRF),您需要禁用/ Eureka /**端點的這個請求
2、添加配置文件
在eureka服務工程中添加配置文件:
package com.zrk.config; import org.springframework.security.config.annotation.web.builders.HttpSecurity; import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity; import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter; /** * @Description: * @Author: zrk * @Date: 2019/9/12 */ @EnableWebSecurity class WebSecurityConfig extends WebSecurityConfigurerAdapter { @Override protected void configure(HttpSecurity http) throws Exception { http.csrf().ignoringAntMatchers("/eureka/**"); super.configure(http); } }
重啟eureka服務,重啟客戶端就發現已經可以注冊成功。