第一种:服务端和客户端的 defaultZone地址不一样导致的。 

        解决:如果服务端设置安全认证了 ,客户端也要加上用户名和密码,

server:

click:

第二种:服务端没有禁用自己的注册行为

       说明:在默认下,Eureka服务注册中心也会将自己作为客户端来尝试注册,所以我们要禁用它的客户端注册行为。

       解决:在application.yml配置文件中增加以下内容


第三种: 开启认证了,但是没有禁用CSRF

    新版本的spring-cloud2.0中: Spring Security默认开启了CSRF攻击防御

   CSRF会将微服务的注册也给过滤了,虽然不会影响注册中心,但是其他客户端是注册不了的。

   解决:

@Configuration
public class WebSecurityConfig {

    @EnableWebSecurity
    public class SpringSecurityConfig extends WebSecurityConfigurerAdapter {
        @Override
        protected void configure(HttpSecurity http) throws Exception {
            http.authorizeRequests().anyRequest().authenticated().and().httpBasic().and().csrf().disable();
        }
    }
}

 

 

 

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐