跳到主要内容

12、Spring Cloud Config 用户认证

介绍

Config Server是允许匿名访问的。为了防止配置内容的外泄,应该保护Config Server的安全。有多种方式可以做到这一点,例如通过物理网络安全,或者Config Server添加用户认证等。

为Config Server添加基于HTTP Basic的用户认证

1新建项目microservice-config-server-eureka-authenticating

2为项目添加依赖

<dependencies>
<dependency>
  <groupId>org.springframework.cloud</groupId>
  <artifactId>spring-cloud-config-server</artifactId>
</dependency>
<dependency>
  <groupId>org.springframework.cloud</groupId>
  <artifactId>spring-cloud-starter-eureka</artifactId>
</dependency>
<dependency>
  <groupId>org.springframework.boot</groupId>
  <artifactId>spring-boot-starter-security</artifactId>
</dependency>
</dependencies>

3在application.yml中添加如下内容:

server:
  port: 8080
spring:
  application:
    name: microservice-config-server-eureka
  cloud:
    config:
      server:
        git:
          uri:https://git.oschina.net/itmuch/spring-cloud-config-repo# 配置Git仓库的地址
          username:                                                         Git仓库的账号
          password:                                                         Git仓库的密码
eureka:
  client:
    serviceUrl:
      defaultZone:http://localhost:8761/eureka/
security:
  basic:
    enabled: true               开启基于HTTP basic的认证
  user:
    name: user                  配置登录的账号是user
    password: password123       配置登录的密码是password123

4启动该服务,并输入 http://localhost:8080/microservice-foo/dev

 

5输入用户名user和密码password123

 

Config Client连接需用户认证的Config Server

Config Client有两种方式使用需要用户认证的Config Server

1使用curl风格的URL

spring:
  cloud:
    config:
      uri: http://user:password123@localhost:8080/

2指定Config Server的账号和密码

spring:
  cloud:
    config:
      uri: http://localhost:8080/
      username:user
      password:password123

需要注意的是spring.cloud.config.password和spring.cloud.config.username的优先级较高,它们会覆盖URL中包含的账号和密码。

四Config Client认证Config Server项目实战

1新建项目microservice-config-client-eureka-authenticating

2bootstrap.yml配置如下

spring:
  application:
    name: microservice-foo    对应config server所获取的配置文件的{application}
  cloud:
    config:
      username: user
      password: password123
      profile: dev
      label: master
      discovery:
        enabled: true                                  表示使用服务发现的configserver配置,而不是自己配置的Config Server的uri,默认false
        service-id: microservice-config-server-eureka  指定Config Server在服务发现中的serviceId,默认是configserver
eureka:
  client:
    serviceUrl:
      defaultZone:http://localhost:8761/eureka/ 

3启动microservice-config-client-eureka-authenticating

4输入 http://localhost:8081/profile

 

版权声明:「DDKK.COM 弟弟快看,程序员编程资料站」本站文章,版权归原作者所有