目錄
- 1、想達到的效果
- 2、用戶信息在微服務之間傳遞的兩種途徑
- 3、用RuoYi-Cloud為例進行演示說明
- (1)網關將用戶信息寫在請求頭中
- (2)業務微服務之間通過OpenFeign進行調用,并且將用戶信息寫在OpenFeign準備的請求頭中
- (3)當請求到達業務微服務時,攔截器會從請求中獲取用戶信息,并放在ThreadLocal中
1、想達到的效果
在業務微服務中通過工具類獲取當前用戶信息
2、用戶信息在微服務之間傳遞的兩種途徑
- 網關微服務(Gateway)往業務微服務傳遞用戶信息
- 業務微服務之間通過OpenFeign傳遞用戶信息
只要把上面兩處打通,然后業務微服務在通過攔截器獲取到用戶信息,之后再將用戶信息存在ThreadLocal中,這樣我們就可以實現業務為服務中通過工具類獲取當前用戶信息的效果了
直接上圖說明整體流程:
3、用RuoYi-Cloud為例進行演示說明
說明:
- RuoYi-Cloud:https://gitee.com/y_project/RuoYi-Cloud
- 演示步驟:下面步驟以上圖為例進行演示
(1)網關將用戶信息寫在請求頭中
- 代碼:AuthFilter.java類—filter方法
- 具體位置截圖:
(2)業務微服務之間通過OpenFeign進行調用,并且將用戶信息寫在OpenFeign準備的請求頭中
- 代碼:FeignRequestInterceptor類—apply方法
- 具體位置截圖:
(3)當請求到達業務微服務時,攔截器會從請求中獲取用戶信息,并放在ThreadLocal中
- 代碼:HeaderInterceptor類—preHandle方法
- 具體位置截圖: