中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Spring Cloud怎么保證微服務內安全

發布時間:2021-07-19 09:22:28 來源:億速云 閱讀:334 作者:小新 欄目:開發技術

這篇文章主要為大家展示了“Spring Cloud怎么保證微服務內安全”,內容簡而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領大家一起研究并學習一下“Spring Cloud怎么保證微服務內安全”這篇文章吧。

一、簡介

在微服務的架構下,我們需要把系統的業務劃分成多個單一的微服務。每個微服務都會提供接口供其他微服務調用,在Dubbo中可以通過rmi、nio等實現,Spring Cloud中是通過http調用的。

但有些時候,我們只希望用戶通過我們的網關調用微服務,不允許用戶直接請求微服務。這時我們就可以借助Spring Security來保障安全。

二、使用步驟

2.1 在提供接口的微服務項目中配置Spring Security

1 首先在pom.xml引入Spring Security的相關配置,如下

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

2 在qpplication.yml中配置賬號密碼,如下

security:
  basic:
    enabled: true
  user:
    name: sunbufu
    password: 123456

3 此時訪問接口發現已經需要認證了。

Spring Cloud怎么保證微服務內安全

輸入正確的賬號和密碼后就可以訪問了。

2.2在調用微服務項目中配置Feign的賬號密碼

1 在application.yml中配置賬號密碼

security:
  user:
    name: sunbufu
    password: 123456

2 添加Feign的配置文件

package com.sunbufu.config;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import feign.auth.BasicAuthRequestInterceptor;
@Configuration
public class FeignConfiguration {
    @Value("${security.user.name}")
    private String userName;
    @Value("${security.user.password}")
    private String passWord;
    @Bean
    public BasicAuthRequestInterceptor basicAuthRequestInterceptor(){
        return new BasicAuthRequestInterceptor(userName, passWord);
    }
}

3 這樣完成后,就可以正常的訪問了。

Spring Cloud怎么保證微服務內安全

三、實例

Spring Cloud怎么保證微服務內安全

git源碼地址:https://github.com/sunbufu/sunbufu-cloud

下面是這4個工程的說明:

1. sunbufu-erueka:Eureka服務的工程

2. sunbufu-hello-face:服務接口的定義工程,其中包括定義微服務需要實現什么功能,其他微服務怎么調用,以及feign的配置

3. sunbufu-hello-impl:服務接口的實現工程,實現了sunbufu-hello-face定義的功能

4. sunbufu-hello-web:服務的網關工程,主要為了調用sunbufu-hello-face

Spring Cloud服務安全連接

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怎么保證微服務內安全”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

崇明县| 慈溪市| 忻城县| 萨嘎县| 突泉县| 怀仁县| 固阳县| 克什克腾旗| 澄江县| 磐安县| 读书| 翁源县| 福清市| 灵丘县| 余姚市| 龙游县| 当雄县| 林周县| 米泉市| 孟津县| 吴川市| 呼和浩特市| 鲁甸县| 清涧县| 麟游县| 彰武县| 武宁县| 瑞昌市| 翁牛特旗| 濮阳市| 永春县| 阿坝县| 蒲城县| 蓝田县| 阿图什市| 靖边县| 嘉兴市| 上高县| 四子王旗| 陆丰市| 井陉县|