Spring Cloud服務安全連接方式
Spring Cloud服務安全連接
Spring Cloud可以增加HTTP Basic認證來增加服務連接的安全性。
一、加入security啟動器
在maven配置文件中加入Spring Boot的security啟動器。
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-security</artifactId>
</dependency>
這樣,就開啟對服務連接的安全保護,系統(tǒng)默認為生成一個用戶名為”user”及一個隨機密碼,隨機密碼在服務啟動的時候在日志中會打印出來。
二、自定義用戶名密碼
隨機密碼沒什么實際意義,我們需要一個固定的連接用戶名和密碼。
在應用配置文件中加入以下配置即可。
security:
user:
name: admin
password: admin123456
這樣配置完后在連接這個服務的時候就會要求輸入用戶名和密碼,如果認證失敗會返回401錯誤。
{
"timestamp": 1502689874556,
"status": 401,
"error": "Unauthorized",
"message": "Bad credentials",
"path": "/test/save"
}
三、安全連接
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微服務安全
- JWT - 網(wǎng)絡安全第一站
- CORS - 跨域安全解決
- Spring Security - 服務安全衛(wèi)士
一、JWT介紹
JWT的身份認證:

1、JWT全稱 - JSON Web Token
2、JWT主要用于身份認證和信息加密
3、JWT是一個簡單而有效的安全認證方式
二、JWT進階特性
1、JWT可以攜帶數(shù)據(jù)進行傳輸,方便后端使用
2、JWT可以對傳輸數(shù)據(jù)進行簽名,增加安全性
三、JWT組成
1、Header:存儲關于簽名算法的信息
2、Payload:存儲信息
3、Signature:header + payload + 秘鑰做一次hash256加密
四、在網(wǎng)關模塊,配置請求過濾的邏輯
1、驗證Token有效性
2、解析出JWT中的payload
3、是否需要驗簽
4、判斷userId是否有效
五、CORS(跨域資源共享)
1、跨域資源共享:Cross-origin、resource sharing
2、域:當一個請求的協(xié)議、域名和端口三者之一不同即為跨域
3、在網(wǎng)關配置跨域資源的請求過濾,配置資源共享的方式和目標方
4、缺陷:如果出現(xiàn)跨域策略不足的情況,需要修改代碼,重新部署(代價大)->Nginx(可選方案)
六、Eureka Server安全問題(Spring Security)
1、Spring Cloud默認可以使用Spring Security進行身份驗證
2、Eureka Server可以使用Spring Security建立安全連接
3、Spring Cloud新版默認會開啟CSRF防御(可關閉),會導致一些錯誤
4、步驟:添加依賴包、配置注冊中心的用戶名和密碼
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關文章
Java中Stream的flatMap與map使用場景及區(qū)別詳解
這篇文章主要介紹了Java中Stream的flatMap與map使用場景及區(qū)別詳解,Stream 流式操作,一般用于操作集合即 List 一類的數(shù)據(jù)結(jié)構(gòu),簡單來說 Stream 的 map 使得其中的元素轉(zhuǎn)為另一種元素的映射(map)方法,需要的朋友可以參考下2024-01-01
Springboot基于BCrypt非對稱加密字符串的實現(xiàn)
本文主要介紹了Springboot基于BCrypt非對稱加密字符串的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2023-04-04
IDEA 單元測試創(chuàng)建方法詳解(2020.03版本親測)
這篇文章主要介紹了IDEA 單元測試創(chuàng)建方法詳解(2020.03版本親測),本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-10-10
spring boot 1.5.4 集成shiro+cas,實現(xiàn)單點登錄和權(quán)限控制
這篇文章主要介紹了spring boot 1.5.4 集成shiro+cas,實現(xiàn)單點登錄和權(quán)限控制,需要的朋友可以參考下2017-06-06

