由於工作等種種原因未能連續進行學習,現在繼續學習微服務,不過是新建的demo,springcloud版本用的是Finchley.SR2。
之前用簡單demo實現了注冊中心,現在來對注冊中心加安全驗證:
一、添加依賴
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-security</artifactId> </dependency>
二、修改配置文件
設置安全認證的用戶名跟密碼:
##驗證的用戶名和密碼
spring.security.user.name=zrk
spring.security.user.password=123
修改eureka訪問url
eureka.client.service-url.defaultZone=http://${spring.security.user.name}:${spring.security.user.password}@${eureka.instance.hostname}:${server.port}/eureka/
三、重啟eureka服務
訪問,界面如下:
輸入用戶名、密碼即可
四、客戶端注冊到注冊中心
修改配置文件
eureka.client.serviceUrl.defaultZone=http://zrk:123@localhost:30000/eureka/
五、在eureka服務添加配置
看springcloud官方文檔Securing The Eureka Server這部分,有如下內容
只需通過Spring -boot-starter- security將Spring Security添加到服務路徑中,就可以保護Eureka服務。默認情況下,當Spring Security位於類路徑上時,它將要求在每次向應用程序發送請求時都發送一個有效的CSRF令牌。Eureka客戶機通常不會擁有一個有效的跨站點請求偽造令牌(CSRF),您需要禁用/ Eureka /**端點的這個請求
,舉例:
@EnableWebSecurity class WebSecurityConfig extends WebSecurityConfigurerAdapter { @Override protected void configure(HttpSecurity http) throws Exception { http.csrf().ignoringAntMatchers("/eureka/**"); super.configure(http); } }
配置完成重啟即可。