SpringCloud服務安全連線

Java技術棧發表於2017-09-30

轉載自 SpringCloud服務安全連線

Spring Cloud可以增加HTTP Basic認證來增加服務連線的安全性。

1、加入security啟動器

在maven配置檔案中加入Spring Boot的security啟動器。

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

這樣,就開啟對服務連線的安全保護,系統預設為生成一個使用者名稱為"user"及一個隨機密碼,隨機密碼在服務啟動的時候在日誌中會列印出來。

2、自定義使用者名稱密碼

隨機密碼沒什麼實際意義,我們需要一個固定的連線使用者名稱和密碼。

在應用配置檔案中加入以下配置即可。

security: 
  user: 
    name: admin
    password: admin123456

這樣配置完後在連線這個服務的時候就會要求輸入使用者名稱和密碼,如果認證失敗會返回401錯誤。

{
    "timestamp": 1502689874556,
    "status": 401,
    "error": "Unauthorized",
    "message": "Bad credentials",
    "path": "/test/save"
}

3、安全連線

1、註冊中心安全連線

username:password@ipaddress

2、Feign申明式服務安全連線

@FeignClient(name = "SERVICE", configuration = FeignAuthConfig.class)
public interface OrderService extends OrderAPI {

}
@Configuration
public class FeignAuthConfig {

    @Bean
    public BasicAuthRequestInterceptor basicAuthRequestInterceptor() {
        return new BasicAuthRequestInterceptor("admin","admin123456");
    }
}


Spring Cloud可以增加HTTP Basic認證來增加服務連線的安全性。

1、加入security啟動器

在maven配置檔案中加入Spring Boot的security啟動器。

  1. <dependency>

  2.    <groupId>org.springframework.boot</groupId>

  3.    <artifactId>spring-boot-starter-security</artifactId>

  4. </dependency>

這樣,就開啟對服務連線的安全保護,系統預設為生成一個使用者名稱為"user"及一個隨機密碼,隨機密碼在服務啟動的時候在日誌中會列印出來。

2、自定義使用者名稱密碼

隨機密碼沒什麼實際意義,我們需要一個固定的連線使用者名稱和密碼。

在應用配置檔案中加入以下配置即可。

  1. security:

  2.  user:

  3.    name: admin

  4.    password: admin123456

這樣配置完後在連線這個服務的時候就會要求輸入使用者名稱和密碼,如果認證失敗會返回401錯誤。

  1. {

  2.    "timestamp":1502689874556,

  3.    "status":401,

  4.    "error":"Unauthorized",

  5.    "message":"Bad credentials",

  6.    "path":"/test/save"

  7. }

3、安全連線

1、註冊中心安全連線

username:password@ipaddress

2、Feign申明式服務安全連線

  1. @FeignClient(name="SERVICE", configuration =FeignAuthConfig.class)

  2. publicinterfaceOrderServiceextendsOrderAPI{

  3. }

  1. @Configuration

  2. publicclassFeignAuthConfig{

  3.    @Bean

  4.    publicBasicAuthRequestInterceptor basicAuthRequestInterceptor(){

  5.        returnnewBasicAuthRequestInterceptor("admin","admin123456");

  6.    }

  7. }

相關文章