1. 程式人生 > >Eureka Server 開啟Spring Security Basic認證

Eureka Server 開啟Spring Security Basic認證

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


後 記

由於能力有限,若有錯誤或者不當之處,還請大家批評指正,一起學習交流!