前些天棧長在微信公衆號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 跨站腳本攻擊,須要禁用它,添加如下配置便可。
@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 教程,都是實戰乾貨,如下僅爲部分預覽。
本文原創首發於公衆號:Java技術棧(id:javastack),關注公衆號在後臺回覆 "cloud" 可獲取更多 Spring Cloud 教程,轉載請原樣保留本信息。