说说我SpringCloud微服务碰到的神奇的坑


  • ACG

    最近在学微服务,学到Eureka注册中心的安全验证这一节时,按照文档的说法,先添加了spring-boot-starter-security依赖,然后在配置文件中设置了账号密码,并添加配置类用来忽略服务注册时的CSRF验证

    package org.bkcloud.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;
    
    @EnableWebSecurity
    public class WebSecurityConfig extends WebSecurityConfigurerAdapter {
        @Override
        protected void configure(HttpSecurity http) throws Exception {
            http.csrf().ignoringAntMatchers("/eureka/**");
            super.configure(http);
        }
    }
    

    然后,当我的服务用账号密码注册到注册中心时,却提示

    com.netflix.discovery.shared.transport.TransportException: Cannot execute request on any known server

    我花了几个小时各种改配置 ,重新启动,仍然无法解决。我甚至尝试过直接禁用CSRF防护,也没有效果。
    最终,我重启IDE,重新运行程序,问题莫名其妙就解决了


    总结

    此次问题

    • 原因:未知
    • 解决方法:未知
    • 感想:一脸懵逼


  • 学什么 Java 。赶快过来用 golang