Spring Cloud服務(wù)安全連接方式
Spring Cloud服務(wù)安全連接
Spring Cloud可以增加HTTP Basic認(rèn)證來增加服務(wù)連接的安全性。
一、加入security啟動(dòng)器
在maven配置文件中加入Spring Boot的security啟動(dòng)器。
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-security</artifactId> </dependency>
這樣,就開啟對服務(wù)連接的安全保護(hù),系統(tǒng)默認(rèn)為生成一個(gè)用戶名為”user”及一個(gè)隨機(jī)密碼,隨機(jī)密碼在服務(wù)啟動(dòng)的時(shí)候在日志中會(huì)打印出來。
二、自定義用戶名密碼
隨機(jī)密碼沒什么實(shí)際意義,我們需要一個(gè)固定的連接用戶名和密碼。
在應(yīng)用配置文件中加入以下配置即可。
security: user: name: admin password: admin123456
這樣配置完后在連接這個(gè)服務(wù)的時(shí)候就會(huì)要求輸入用戶名和密碼,如果認(rèn)證失敗會(huì)返回401錯(cuò)誤。
{ "timestamp": 1502689874556, "status": 401, "error": "Unauthorized", "message": "Bad credentials", "path": "/test/save" }
三、安全連接
1、注冊中心安全連接
username:password@ipaddress
2、Feign申明式服務(wù)安全連接
@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微服務(wù)安全
- JWT - 網(wǎng)絡(luò)安全第一站
- CORS - 跨域安全解決
- Spring Security - 服務(wù)安全衛(wèi)士
一、JWT介紹
JWT的身份認(rèn)證:
1、JWT全稱 - JSON Web Token
2、JWT主要用于身份認(rèn)證和信息加密
3、JWT是一個(gè)簡單而有效的安全認(rèn)證方式
二、JWT進(jìn)階特性
1、JWT可以攜帶數(shù)據(jù)進(jìn)行傳輸,方便后端使用
2、JWT可以對傳輸數(shù)據(jù)進(jìn)行簽名,增加安全性
三、JWT組成
1、Header:存儲(chǔ)關(guān)于簽名算法的信息
2、Payload:存儲(chǔ)信息
3、Signature:header + payload + 秘鑰做一次hash256加密
四、在網(wǎng)關(guān)模塊,配置請求過濾的邏輯
1、驗(yàn)證Token有效性
2、解析出JWT中的payload
3、是否需要驗(yàn)簽
4、判斷userId是否有效
五、CORS(跨域資源共享)
1、跨域資源共享:Cross-origin、resource sharing
2、域:當(dāng)一個(gè)請求的協(xié)議、域名和端口三者之一不同即為跨域
3、在網(wǎng)關(guān)配置跨域資源的請求過濾,配置資源共享的方式和目標(biāo)方
4、缺陷:如果出現(xiàn)跨域策略不足的情況,需要修改代碼,重新部署(代價(jià)大)->Nginx(可選方案)
六、Eureka Server安全問題(Spring Security)
1、Spring Cloud默認(rèn)可以使用Spring Security進(jìn)行身份驗(yàn)證
2、Eureka Server可以使用Spring Security建立安全連接
3、Spring Cloud新版默認(rèn)會(huì)開啟CSRF防御(可關(guān)閉),會(huì)導(dǎo)致一些錯(cuò)誤
4、步驟:添加依賴包、配置注冊中心的用戶名和密碼
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
如何在Spring中使用編碼方式動(dòng)態(tài)配置Bean詳解
這篇文章主要給大家介紹了關(guān)于如何在Spring中使用編碼方式動(dòng)態(tài)配置Bean的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2018-05-05SpringMvc使用GoogleKaptcha生成驗(yàn)證碼
這篇文章主要為大家詳細(xì)介紹了SpringMvc項(xiàng)目中使用GoogleKaptcha 生成驗(yàn)證碼,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-09-09IDEA報(bào)錯(cuò):無效的源發(fā)行版解決方案
很多小伙伴在刷新maven的時(shí)候總會(huì)報(bào) Error:java:無效的源發(fā)行版,下面這篇文章主要給大家介紹了關(guān)于IDEA報(bào)錯(cuò):無效的源發(fā)行版的解決方案,文中通過圖文介紹的非常詳細(xì),需要的朋友可以參考下2022-09-09java數(shù)據(jù)結(jié)構(gòu)之樹基本概念解析及代碼示例
這篇文章主要介紹了java數(shù)據(jù)結(jié)構(gòu)之樹基本概念解析及代碼示例,介紹了樹的定義,基本術(shù)語,主要操作及實(shí)現(xiàn)等相關(guān)內(nèi)容,具有一定參考價(jià)值,需要的朋友可了解下。2017-11-11java日期格式化YYYY-MM-dd遇坑指南小結(jié)
本文主要介紹了java日期格式化YYYY-MM-dd遇坑指南小結(jié),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2022-08-08詳解SpringBoot 多線程處理任務(wù) 無法@Autowired注入bean問題解決
這篇文章主要介紹了詳解SpringBoot 多線程處理任務(wù) 無法@Autowired注入bean問題解決,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2019-06-06詳解Spring的autowire-candidate設(shè)計(jì)
現(xiàn)在的Spring應(yīng)用通常都是基于注解開發(fā),但是對Spring感興趣的同學(xué)可以借助Spring早期基于Xml配置的各種運(yùn)用來加深對Spring框架內(nèi)部的理解和體會(huì)Spring框架的設(shè)計(jì)之妙。這篇文章我們就來談?wù)刋ml配置之default-autowire-candidates2021-06-06