Eureka Server 开启 Spring Security Basic 认证

本贴最后更新于 2189 天前,其中的信息可能已经时移世改

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 中心


后 记

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



  • Spring

    Spring 是一个开源框架,是于 2003 年兴起的一个轻量级的 Java 开发框架,由 Rod Johnson 在其著作《Expert One-On-One J2EE Development and Design》中阐述的部分理念和原型衍生而来。它是为了解决企业应用开发的复杂性而创建的。框架的主要优势之一就是其分层架构,分层架构允许使用者选择使用哪一个组件,同时为 JavaEE 应用程序开发提供集成的框架。

    944 引用 • 1459 回帖 • 16 关注
  • 微服务

    微服务架构是一种架构模式,它提倡将单一应用划分成一组小的服务。服务之间互相协调,互相配合,为用户提供最终价值。每个服务运行在独立的进程中。服务于服务之间才用轻量级的通信机制互相沟通。每个服务都围绕着具体业务构建,能够被独立的部署。

    96 引用 • 155 回帖 • 2 关注

相关帖子

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...