V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
hansonwang99
V2EX  ›  Blogger

Eureka Server 开启最基本的 Spring Security Basic 安全措施

  •  
  •   hansonwang99 · 2018-11-27 06:44:31 +08:00 · 1182 次点击
    这是一个创建于 2170 天前的主题,其中的信息可能已经有所发展或是发生改变。

    Desktop

    文章共 503 字,阅读大约需要 2 分钟 !


    概 述

    Eureka Server 在实际使用过程中必须考虑安全问题,比如 未认证的用户 不允许其随意调用 Eureka Server 的 API ;还有一个则是 未认证的 Eureka Client 也禁止其注册到 Eureka Server 中来,这些都是可以在工程中进行配置的,当然这也是最最基本的安全认证措施,本文实践之。

    本文实验环境如下:

    • Spring Cloud:Finchley.RELEASE
    • Spring Boot:2.0.3.RELEASE

    注: 本文首发于 My Personal Blog:CodeSheep·程序羊,欢迎光临 小站


    Eureka Server 搭建与配置

    Eureka Server 开启 Spring Security Basic 认证首先需要在 Eureka Server 中引入 Spring Security 组件:

    <dependency>
    	<groupId>org.springframework.boot</groupId>
    	<artifactId>spring-boot-starter-security</artifactId>
    </dependency>
    

    接下来关键的一步则是配置 Eureka Server 工程的 yml 配置文件,加入和认证相关的信息:

    server:
      port: 1111
    
    spring:
      security:
        user:
          name: codesheep
          password: www.codesheep.cn
    
    eureka:
      client:
        registerWithEureka: false
        fetchRegistry: false
    

    spring.security 配置的意图应该很明确了吧,需要用户名和密码方可认证通过。


    Eureka Client 搭建与配置

    既然上面的 Eureka Server 已开启认证环节,则相应的 Eureka Client 也需要对应的配置,方可通过认证再注册到 Eureka Server 中来

    搭建好 Eureka Client 工程后,需要在项目配置文件中加入类似 Eureka Server 的配置:

    server:
      port: 1112
    
    spring:
      application:
        name: eureka-client
    
    eureka:
      client:
        security:
          basic:
            user: codesheep
            password: www.codesheep.cn
    
        serviceUrl:
          defaultZone: http://${eureka.client.security.basic.user}:${eureka.client.security.basic.password}@localhost:1111/eureka/
    

    这样就完成了基于 Spring Security Basic 的基础认证


    实验验证

    • 启动 Eureka Server 后,再也不能裸进 Eureka Server 管理界面了,需要输入用户名 /密码 认证

    进 Eureka Server 管理界面了,需要输入用户名 /密码 认证

    • 没有通过认证的 Eureka Client 是无法注册到 Eureka Server 中心的,控制台会报无法发送心跳的错误

    没有通过认证的 Eureka Client 无法注册到 Eureka Server 中心

    没有通过认证的 Eureka Client 无法注册到 Eureka Server 中心

    • 而认证通过的 Eureka Client 还是按照往常一样注册到 Eureka Server 中心

    认证通过的 Eureka Client 还是按照往常一样注册到 Eureka Server 中心


    后 记

    由于能力有限,若有错误或者不当之处,还请大家批评指正,一起学习交流!



    zhazi
        1
    zhazi  
       2018-11-27 08:36:41 +08:00 via Android
    这种东西太初级了,官方文档读两本都会做,你说说你这个照文档有什么优势
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5345 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 22ms · UTC 09:18 · PVG 17:18 · LAX 01:18 · JFK 04:18
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.