千家信息网

如何解决Spring Cloud Eureka 在添加了 Spring Security 权限验证之后客户端死活无法注册的问题

发表于:2026-11-03 作者:千家信息网编辑
千家信息网最后更新 2026年11月03日,本篇文章为大家展示了如何解决Spring Cloud Eureka 在添加了 Spring Security 权限验证之后客户端死活无法注册的问题,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这
千家信息网最后更新 2026年11月03日如何解决Spring Cloud Eureka 在添加了 Spring Security 权限验证之后客户端死活无法注册的问题

本篇文章为大家展示了如何解决Spring Cloud Eureka 在添加了 Spring Security 权限验证之后客户端死活无法注册的问题,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。

Spring Cloud Eureka 在添加了 Spring Security 权限验证之后,客户端注册的时候使用

eureka.client.service-url.defaultZone=http://xiaoming:10010@localhost:8761/eureka/

客户端注册时候报错

com.netflix.discovery.shared.transport.TransportException: Cannot execute request on any known server        at com.netflix.discovery.shared.transport.decorator.RetryableEurekaHttpClient.execute(RetryableEurekaHttpClient.java:112) ~[eureka-client-1.9.12.jar:1.9.12]        at com.netflix.discovery.shared.transport.decorator.EurekaHttpClientDecorator.register(EurekaHttpClientDecorator.java:56) ~[eureka-client-1.9.12.jar:1.9.12]        at com.netflix.discovery.shared.transport.decorator.EurekaHttpClientDecorator$1.execute(EurekaHttpClientDecorator.java:59) ~[eureka-client-1.9.12.jar:1.9.12]        at com.netflix.discovery.shared.transport.decorator.SessionedEurekaHttpClient.execute(SessionedEurekaHttpClient.java:77) ~[eureka-client-1.9.12.jar:1.9.12]        at com.netflix.discovery.shared.transport.decorator.EurekaHttpClientDecorator.register(EurekaHttpClientDecorator.java:56) ~[eureka-client-1.9.12.jar:1.9.12]        at com.netflix.discovery.DiscoveryClient.register(DiscoveryClient.java:847) ~[eureka-client-1.9.12.jar:1.9.12]        at com.netflix.discovery.InstanceInfoReplicator.run(InstanceInfoReplicator.java:121) ~[eureka-client-1.9.12.jar:1.9.12]        at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) [na:1.8.0_172]        at java.util.concurrent.FutureTask.run(FutureTask.java:266) [na:1.8.0_172]        at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:180) [na:1.8.0_172]        at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293) [na:1.8.0_172]        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) [na:1.8.0_172]        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) [na:1.8.0_172]        at java.lang.Thread.run(Thread.java:748) [na:1.8.0_172]

经查发现是 spring boot 2.x 之后的版本默认开启了 csrf (跨站请求伪造)检查,所以导致报错

解决方式:在eureka服务项目中添加一个配置类,忽略对 /eureka 请求的检查

@EnableWebSecuritypublic class WebSecurityConfig extends WebSecurityConfigurerAdapter {        @Override        protected void configure(HttpSecurity http) throws Exception {                http.csrf().ignoringAntMatchers("/eureka/**");                super.configure(http);        }}

上述内容就是如何解决Spring Cloud Eureka 在添加了 Spring Security 权限验证之后客户端死活无法注册的问题,你们学到知识或技能了吗?如果还想学到更多技能或者丰富自己的知识储备,欢迎关注行业资讯频道。

0