升级springcloud2.0踩过的坑(一) eureka 开启登录验证后,eureka 客户端无法注册到eureka

将老版本的springcloud 升级为2.0之后 再未改动代码的情况下发现各个客户端注册不上eureka 

找到原因 

查资料了解到新版(Spring Cloud 2.0 以上)的security默认启用了csrf检验,要在eurekaServer端配置security的csrf检验为false

解决办法

首先利用注解@EnableWebSecurity 注解开启security的配置,然后继承  WebSecurityConfigurerAdapter 适配器

并重写 configure(HttpSecurity http) 方法,关闭掉 csrf。

import org.springframework.context.annotation.Configuration;
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
@Configuration
public class WebSecurityConfig extends WebSecurityConfigurerAdapter {

    @Override
    protected void configure(HttpSecurity http) throws Exception {
        http.csrf().disable(); //关闭csrf
        http.authorizeRequests().anyRequest().authenticated().and().httpBasic(); 
    }

}

 

你可能感兴趣的:(spring,cloud)