上一篇 Eureka 实现微服务注册发现讲了用 Eureka 实现单体版的服务注册与发现. 因为本篇是在上一篇的基础上的一点扩充, 所以读此篇之前要保证看了上一篇.
Eureka 如果不加安全控制, 会存在下列问题:
Eureka 控制台可以看到各服务的状态和参数等信息, 如果不加控制, 只要知道注册中心的地址, 就可以登录上去看到各服务信息;
只要知道注册中心地址, 服务提供者就可以注册上来, 对外提供服务;
只要知道注册中心地址, 服务消费者就可以发现注册中心的服务, 并调用服务;
为了安全起见, 我们还是为 Eureka 增加安全控制, 这里用 Spring Security 实现最基础的用户名, 密码控制.
一个小知识点而已, 几个配置就可以完成.
1. maven 包引用
在服务注册中心项目的 pom.xml 文件中引入 Spring Security 包.
- <dependency>
- <groupId>org.springframework.boot</groupId>
- <artifactId>spring-boot-starter-security</artifactId>
- </dependency>
2. 增加应用配置
在应用配置文件中增加关于 security 的配置, 一般是放在 application.YAML , 但是本项目中分了 application.YAML 和 Bootstrap.YAML 两个配置文件, 所以我这里是放在了 application.YAML 中.
- 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. 服务消费者
服务消费者和服务提供者配置方式一致.
具体的代码已经放到
如果你觉得写的还可以的话, 请点个「推荐」吧
来源: https://www.cnblogs.com/fengzheng/p/10635000.html