Spring Cloud Eureka 你還在讓它裸奔嗎??

前些天棧長在微信公衆號Java技術棧分享了 Spring Cloud Eureka 最新版 實現註冊中心的實戰教程:Spring Cloud Eureka 註冊中心集羣搭建,Greenwich 最新版!,成功進入 Eureka 控制檯頁面。html

但控制檯首頁默認是沒有登陸認證保護的,打開就能訪問,並且你的微服務也能隨意註冊進去,這樣是不安全的,本章棧長將加入登陸認證功能,把你的 Eureka 註冊中心保護起來。java

本文基於最新的 Spring Cloud Greenwich.SR1 以及 Spring Boot 2.1.3 版本進行分享。spring

一、加入 Spring Security 依賴安全

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

二、添加安全配置微信

在 application.yml 配置文件中添加如下配置:app

spring: 
  security:
    user:
      name: javastack
      password: javastack

配置用來登陸認證的用戶名和密碼。ide

三、修改defaultZonespring-boot

須要在 defaultZone 中添加用戶名密碼認證。微服務

格式以下:code

defaultZone: http://username:password@eureka:8761/eureka/

參考配置以下:

defaultZone: http://javastack:javastack@eureka1:8761/eureka/, http://javastack:javastack@eureka2:8762/eureka/

四、禁用CSRF

如上圖所示,註冊實例出如今 unavailable-replicas 裏面。

這是由於加入了安全認證模塊後,默認會開啓 CSRF 跨站腳本攻擊,須要禁用它,添加如下配置便可。

參考:https://cloud.spring.io/spring-cloud-netflix/multi/multi_spring-cloud-eureka-server.html#_securing_the_eureka_server

@EnableWebSecurity
class WebSecurityConfig extends WebSecurityConfigurerAdapter {

    @Override
    protected void configure(HttpSecurity http) throws Exception {
        http.csrf().ignoringAntMatchers("/eureka/**");
        super.configure(http);
    }

}

這樣配置後,打開 Eureka 控制檯頁面會先要跳到登陸頁面作登陸認證才能訪問,以下圖所示。

好了,今天的分享就到這裏了,後續會分享更多 Eureka 高級玩法,棧長正在拼命撰寫中……關注Java技術棧微信公衆號可獲取及時推送。在公衆號後臺回覆:cloud,獲取棧長整理的更多的 Spring Cloud 教程,都是實戰乾貨,如下僅爲部分預覽。

  • Spring Cloud 最新 Finchley 版本踩坑
  • Spring Cloud 多版本如何選擇
  • Spring Cloud 是什麼,和 Dubbo 對比
  • Spring Cloud 註冊中心高可用搭建
  • Spring Cloud Eureka 自我保護機制
  • ……

本文原創首發於公衆號:Java技術棧(id:javastack),關注公衆號在後臺回覆 "cloud" 可獲取更多 Spring Cloud 教程,轉載請原樣保留本信息。

相關文章
相關標籤/搜索