1. 程式人生 > >Eureka Server新增安全認證

Eureka Server新增安全認證

  1. 配置註冊中心的Maven的pom檔案
 <!--設定登入密碼需要用到Spring Security-->
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-security</artifactId>
</dependency>
  1. 配置註冊中心的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/ #服務註冊中心的位置
  1. 註冊中心關閉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); } }

如果不關閉,那麼客戶端就連線不上

  1. 配置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設定了登入驗證

此時就大功告成了