SpringCloud技术整理(四)EurekaServer用户认证
SpringCloud技术整理(四)EurekaServer用户认证

SpringCloud技术整理(四)EurekaServer用户认证

项目地址:

http://gitlab.zack.net.cn/root/springcloudexample

##########################################################

EurekaServer结合Security进行服务治理校验

以eureka server1为例

  • 编辑eureka server1的pom文件, 引入security依赖
	<!--引入security权限依赖, 用于eureka登录权限验证-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-security</artifactId>
        </dependency>
  • 编辑eureka server1的配置文件, 配置security
spring:
  # 应用名称
  application:
    name: eureka-server
  security:
    # eureka server安全认证
    user:
      name: user
      password: 123456
      roles:
        -ADMIN
  • 编写Security配置类

image.png

package cn.zack.config;

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;

/**
 * @author zack
 * SpringSecurity配置类
 */
@Configuration
@EnableWebSecurity
public class WebSecurityConfig extends WebSecurityConfigurerAdapter {
    /**
     * 重写configure方法,关闭csrf,允许跨站请求
     *
     * @param http
     * @throws Exception
     */
    @Override
    protected void configure(HttpSecurity http) throws Exception {
        http.csrf().disable();
        super.configure(http);
    }
}
  • 启动eureka server1

由于配置了security权限校验, 此时必须输入配置的账号密码才可以登录
image.png

  • 编辑eureka server2的配置文件

由于eureka server2注册到eureka server1, 而eureka server1开启了权限校验, 所有直接注册到eureka server1的服务都要添加权限, 否则无法注册成功.
修改eureka server2配置文件中的注册地址, 重启eureka server2, 即可成功注册到eureka server1.

    service-url:
      # 配置权限校验, 将eureka2注册到eureka1上, 便于同步服务注册信息
      defaultZone: http://user:123456@localhost:8761/eureka/