yml配置文件:
spring:
security:
user:
name: admin
password: admin
eureka服务端配置:
eureka:
client:
register-with-eureka: false
fetch-registry: false
service-url:
defaultZone: http://localhost:8012/eureka/
eureka客户端配置:
eureka:
client:
service-url:
defaultZone: http://admin:admin@localhost:8012/eureka/
instance:
prefer-ip-address: true
启动服务端报错:
com.netflix.discovery.shared.transport.TransportException: Cannot execute request on any known server
问题网上查了下,说是新版(Spring Cloud 2.0 以上)的security默认启用了csrf检验,要在eurekaServer端配置security的csrf检验为false
解决方法:
在服务端添加一个配置类:
@EnableWebSecurity public class WebSecurityConfig extends WebSecurityConfigurerAdapter { @Override protected void configure(HttpSecurity http) throws Exception { http.csrf().disable(); super.configure(http); } }