坑一:Spring Cloud 2.0以上,eureka 开启登录验证后,eureka 客户端无法注册到eureka

之前用的Spring Cloud 是2.0以上的,开启eureka登录验证后,eureka客户端都能正常注册到eureka服务上

今天,升级Spring Cloud后,eureka客户端无法登录上。

查看日志:

坑一:Spring Cloud 2.0以上,eureka 开启登录验证后,eureka 客户端无法注册到eureka_第1张图片

原因分析

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

解决方法

  1. 添加一个继承 WebSecurityConfigurerAdapter 的类;
  2. 在类上添加 @EnableWebSecurity 注解;
  3. 覆盖父类的 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(); //开启认证
    }

}

 

重启eureka客户端,成功。!!!

你可能感兴趣的:(Spring,Cloud踩过的坑,springcloud详解)