Eureka Server新增安全認證
阿新 • • 發佈:2018-12-27
- 配置註冊中心的Maven的pom檔案
<!--設定登入密碼需要用到Spring Security-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-security</artifactId>
</dependency>
- 配置註冊中心的application.yml
server:
port: 8761
#設定eurekaServer的登入密碼
spring:
security:
user:
name: admin # 使用者名稱
password: admin # 使用者密碼
eureka:
instance:
hostname: localhost
client:
registerWithEureka: false #不向eurekaServer註冊 因為自己就是server
fetchRegistry: false #不獲取註冊中心的服務 因為自己就是server
serviceUrl:
defaultZone : http://${eureka.instance.hostname}:${server.port}/eureka/ #服務註冊中心的位置
- 註冊中心關閉Spring Security的CSRF驗證
package com.wind.eurekaserver;
import org.springframework.context.annotation.Configuration;
import org.springframework.security.config.annotation.web.builders.HttpSecurity;
import org.springframework. security.config.annotation.web.configuration.EnableWebSecurity;
import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter;
/**
1. 如果eurekaServer設定了登入密碼 就必須關閉Spring Security的CSRF驗證
*/
@EnableWebSecurity
@Configuration
public class WebSecurityConfig extends WebSecurityConfigurerAdapter {
@Override
protected void configure(HttpSecurity http) throws Exception {
http.csrf().disable(); //關閉csrf
super.configure(http);
}
}
如果不關閉,那麼客戶端就連線不上
- 配置Client的application.yml
server:
port: 8762
spring:
application:
name: eureka-client #配置在eurekaServer中註冊的名字
eureka:
instance:
prefer-ip-address: true #在eurekaServer中服務地址以ip顯示
client:
serviceUrl:
#defaultZone: http://localhost:8761/eureka/ #設定eurekaServer的uri
defaultZone: http://admin:[email protected]:8761/eureka/ #eurekaServer設定了登入驗證
此時就大功告成了