7 天学会 Spring Cloud 系列之《为 Eureka 服务注册中心实现安全控制》

我是风筝,公众号「古时的风筝」,一个简单的程序员鼓励师。
文章会收录在 JavaNewBee 中,更有 Java 后端知识图谱,从小白到大牛要走的路都在里面。

本系列目录:
7天学会 Spring Cloud 系列之《 整体介绍 Spring Cloud 》

7 天学会 Spring Cloud 系列之《 Eureka 实现服务注册与发现》

7 天学会 Spring Cloud 系列之《为 Eureka 服务注册中心实现安全控制》

7 天学会 Spring Cloud 系列之《Spring Cloud Config 实现配置中心 》

更新中…

7 天学会 Spring Cloud 系列之《服务注册发现、配置中心集一体的 Spring Cloud Consul 》

7 天学会 Spring Cloud 系列之《Spring Cloud Stream》

7 天学会 Spring Cloud 系列之 《Spring Cloud Gateway 简单使用 》

7 天学会 Spring Cloud 系列之 《Spring Cloud OAuth2 实现用户认证和单点登录 》

7 天学会 Spring Cloud 系列之 《Spring Cloud OAuth2 授权码模式,微信授权就是这个原理 》

正文开始

上一篇Eureka 实现微服务注册发现讲了用 Eureka 实现单体版的服务注册与发现。因为本篇是在上一篇的基础上的一点扩充,所以读此篇之前要保证看了上一篇。

Eureka 如果不加安全控制,会存在下列问题

  1. Eureka 控制台可以看到各服务的状态和参数等信息,如果不加控制,只要知道注册中心的地址,就可以登录上去看到各服务信息;
  2. 只要知道注册中心地址,服务提供者就可以注册上来,对外提供服务;
  3. 只要知道注册中心地址,服务消费者就可以发现注册中心的服务,并调用服务;

为了安全起见,我们还是为 Eureka 增加安全控制,这里用 Spring Security 实现最基础的用户名、密码控制。

一个小知识点而已,几个配置就可以完成。

1. maven 包引用

在服务注册中心项目的 pom.xml 文件中引入 Spring Security 包。

<dependency>
    <groupId>org.springframework.bootgroupId>
    <artifactId>spring-boot-starter-securityartifactId>
dependency>

2.增加应用配置

在应用配置文件中增加关于 security 的配置,一般是放在 application.yml ,但是本项目中分了 application.yml 和 bootstrap.yml 两个配置文件,所以我这里是放在了 application.yml 中。

spring:
  application:
    name: kite-eureka-center
  security:
      user:
        name: test  			 # 用户名
        password: 123456   # 密码

此时,启动并访问 Eureka 管理控制台,会提示输入用户名和密码,输入上面的 name 和 password 即可。

3.服务提供者注册服务

在服务提供者的应用配置文件中做以下修改即可

eureka:
  instance:
    statusPageUrlPath: /actuator/info
    healthCheckUrlPath: /actuator/health
    prefer-ip-address: true
  client:
    register-with-eureka: true
    fetch-registry: true
    service-url:
      defaultZone: http://test:123456@localhost:3000/eureka/

上述配置与没有安全控制的时候唯一的差别就是在 defaultZone 指定的 eureka 地址。在地址中增加了用户名和密码。
没有安全控制之前的地址为

http://localhost:3000/eureka/

加了安全控制之后的地址为

http://test:123456@localhost:3000/eureka/

4.服务消费者

服务消费者和服务提供者配置方式一致。

具体的代码已经放到 github

如果你觉得本系列还可以的话,请点个「」吧

公众号「古时的风筝」,Java 开发者,全栈工程师,人称迟到小王子,bug 杀手,擅长解决问题。
一个兼具深度与广度的程序员鼓励师,本打算写诗却写起了代码的田园码农!坚持原创干货输出,你可选择现在就关注我,或者看看历史文章再关注也不迟。长按二维码关注,跟我一起变优秀!

你可能感兴趣的:(Spring,Cloud)