av一区二区在线观看_亚洲男人的天堂网站_日韩亚洲视频_在线成人免费_欧美日韩精品免费观看视频_久草视

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

Spring Cloud 如何保證微服務(wù)內(nèi)安全

瀏覽:13日期:2023-07-01 16:39:31
一、簡(jiǎn)介

在微服務(wù)的架構(gòu)下,我們需要把系統(tǒng)的業(yè)務(wù)劃分成多個(gè)單一的微服務(wù)。每個(gè)微服務(wù)都會(huì)提供接口供其他微服務(wù)調(diào)用,在Dubbo中可以通過(guò)rmi、nio等實(shí)現(xiàn),Spring Cloud中是通過(guò)http調(diào)用的。

但有些時(shí)候,我們只希望用戶(hù)通過(guò)我們的網(wǎng)關(guān)調(diào)用微服務(wù),不允許用戶(hù)直接請(qǐng)求微服務(wù)。這時(shí)我們就可以借助Spring Security來(lái)保障安全。

二、使用步驟2.1 在提供接口的微服務(wù)項(xiàng)目中配置Spring Security

1 首先在pom.xml引入Spring Security的相關(guān)配置,如下

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

2 在qpplication.yml中配置賬號(hào)密碼,如下

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

3 此時(shí)訪(fǎng)問(wèn)接口發(fā)現(xiàn)已經(jīng)需要認(rèn)證了。

Spring Cloud 如何保證微服務(wù)內(nèi)安全

輸入正確的賬號(hào)和密碼后就可以訪(fǎng)問(wèn)了。

2.2在調(diào)用微服務(wù)項(xiàng)目中配置Feign的賬號(hào)密碼

1 在application.yml中配置賬號(hào)密碼

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;@Configurationpublic 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 這樣完成后,就可以正常的訪(fǎng)問(wèn)了。

Spring Cloud 如何保證微服務(wù)內(nèi)安全

三、實(shí)例

Spring Cloud 如何保證微服務(wù)內(nèi)安全

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

下面是這4個(gè)工程的說(shuō)明:

1. sunbufu-erueka:Eureka服務(wù)的工程

2. sunbufu-hello-face:服務(wù)接口的定義工程,其中包括定義微服務(wù)需要實(shí)現(xiàn)什么功能,其他微服務(wù)怎么調(diào)用,以及feign的配置

3. sunbufu-hello-impl:服務(wù)接口的實(shí)現(xiàn)工程,實(shí)現(xiàn)了sunbufu-hello-face定義的功能

4. sunbufu-hello-web:服務(wù)的網(wǎng)關(guān)工程,主要為了調(diào)用sunbufu-hello-face

Spring Cloud服務(wù)安全連接

Spring Cloud可以增加HTTP Basic認(rèn)證來(lái)增加服務(wù)連接的安全性。

1、加入security啟動(dòng)器

在maven配置文件中加入Spring Boot的security啟動(dòng)器。

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

這樣,就開(kāi)啟對(duì)服務(wù)連接的安全保護(hù),系統(tǒng)默認(rèn)為生成一個(gè)用戶(hù)名為”user”及一個(gè)隨機(jī)密碼,隨機(jī)密碼在服務(wù)啟動(dòng)的時(shí)候在日志中會(huì)打印出來(lái)。

2、自定義用戶(hù)名密碼

隨機(jī)密碼沒(méi)什么實(shí)際意義,我們需要一個(gè)固定的連接用戶(hù)名和密碼。

在應(yīng)用配置文件中加入以下配置即可。

security: user: name: admin password: admin123456

這樣配置完后在連接這個(gè)服務(wù)的時(shí)候就會(huì)要求輸入用戶(hù)名和密碼,如果認(rèn)證失敗會(huì)返回401錯(cuò)誤。

{ 'timestamp': 1502689874556, 'status': 401, 'error': 'Unauthorized', 'message': 'Bad credentials', 'path': '/test/save'}3、安全連接

1、注冊(cè)中心安全連接

username:password@ipaddress

2、Feign申明式服務(wù)安全連接

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

@Configurationpublic class FeignAuthConfig { @Bean public BasicAuthRequestInterceptor basicAuthRequestInterceptor() {return new BasicAuthRequestInterceptor('admin','admin123456'); }}

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持好吧啦網(wǎng)。

標(biāo)簽: Spring
相關(guān)文章:
主站蜘蛛池模板: 久久综合99| 国产三级在线播放 | 久草福利| 色综合天天综合网天天狠天天 | 成人午夜在线观看 | 久久久婷婷 | 天天色播 | 国产精品国产三级国产专区53 | 国产日韩欧美亚洲 | 日韩欧美在线观看视频 | 日本三级韩国三级美三级91 | 手机看片日韩 | wwwav在线| 亚洲欧洲视频 | 97av在线视频 | 亚洲在线免费视频 | 国产激情在线视频 | 天天操免费视频 | 一区二区三区在线看 | 国产一二区 | 伊人成人在线视频 | 思思在线视频 | 色婷婷亚洲 | 久久99精品久久久久久琪琪 | 99久久精品一区二区成人 | 中文字幕在线观看网站 | 亚洲精品www久久久久久广东 | 免费成人深夜夜国外 | 精品国产乱码久久久久久88av | 亚洲日本一区二区 | 国产女优在线 | 国产精品久久久一区二区三区 | 国产草草影院 | 国产高清在线视频 | 成人网址在线观看 | 国产高清一区二区三区 | 久久亚洲视频 | 日韩欧美黄色片 | 亚洲欧美一区二区三区在线 | 特黄毛片 | 日本a在线 |