• 为 Eureka 服务注册中心实现安全控制


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

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

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

    为了安全起见,我们还是为 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.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

    如果你觉得写的还可以的话,请点个「推荐」吧

    欢迎关注,不定期更新本系列和其他文章
    古时的风筝 ,进入公众号可以加入交流群

  • 相关阅读:
    计算机网络协议如何学习之换位思考
    tcp/ip协议
    JSP页面中的元素
    动态网页脚本语言
    php的学习经验
    jsp、php和asp之间的区别
    Reactor 线程模型
    Hadoop集群搭建
    hadoop单点配置
    Docker 安装脚本
  • 原文地址:https://www.cnblogs.com/fengzheng/p/10635000.html
Copyright © 2020-2023  润新知