Spring Cloud中eureka注册中心添加security认证,eureka client注册启动报错

一、老版本(Spring Cloud 2.0以下)

1、在pom.xml文件中添加security依赖:


	org.springframework.boot
	spring-boot-starter-security

2、在application.properties文件中添加配置:

spring.application.name=eureka-server  //服务名称
server.port=9911                       //服务端口

security.basic.enabled=true   //开启基于HTTP basic的认证
security.user.name=admin      //配置登录的账号是admin
security.user.password=admin  //配置登录的密码是admin

二、新版本(Spring Cloud2.0以上)

1、在pom.xml文件中添加security依赖:


	org.springframework.boot
	spring-boot-starter-security

2、在application.properties文件中添加配置:

spring.application.name=eureka-server  //服务名称
server.port=9911                       //服务端口

#security.basic.enabled=true         //新版本已弃用,引入security包后默认开启
spring.security.user.name=admin      //配置登录的账号是admin
spring.security.user.password=admin  //配置登录的密码是admin

3、关闭csrf检验

因为新版本中security默认开启了scrf检验,因此需要将security的scrf检验设置为false。

设置方法:在eureka server启动类中添加@EnableWebSecurity注解,继承WebSecurityConfigurerAdapter并重写configure方法。

@EnableWebSecurity
@EnableEurekaServer
@SpringBootApplication
public class SpringcloudEurekaServerApplication extends WebSecurityConfigurerAdapter {

    public static void main(String[] args) {
        SpringApplication.run(SpringcloudEurekaServerApplication.class, args);
    }

    @Override
    protected void configure(HttpSecurity http) throws Exception {
        http.csrf().disable();
        // 为了可以使用 http://${user}:${password}@${host}:${port}/eureka/
        // 这种方式登录,所以必须是httpBasic,
        // 如果是form方式,不能使用url格式登录
        http.authorizeRequests().anyRequest().authenticated().and().httpBasic();
    }
}

4、客户端配置添加认证信息

因为服务端添加了安全认证,如果客户端不添加安全认证,就会出现与服务端连接不上的情况,因此客户端也需要添加安全认证。

配置信息:eureka.client.serviceUrl.defaultZone=http://admin:admin@localhost:9090/eureka/

这样,启动注册中心时会提示你输入账号信息:
Spring Cloud中eureka注册中心添加security认证,eureka client注册启动报错_第1张图片

输入账号信息后能够正常进入注册中心,表示eureka添加security安全认证成功。

Spring Cloud中eureka注册中心添加security认证,eureka client注册启动报错_第2张图片

你可能感兴趣的:(Spring Cloud中eureka注册中心添加security认证,eureka client注册启动报错)