微服務通過feign.RequestInterceptor傳遞參數

Feign 支持請求攔截器,在發送請求前,可以對發送的模板進行操作,例如設置請求頭等屬性,自定請求攔截器需要實現 feign.RequestInterceptor 接口,該接口的方法 apply 有參數 template ,該參數類型爲 RequestTemplate,我們可以根據實際情況對請求信息進行調整,示例如下:

創建自定義請求攔截器,在發送請求前增加了一個請求頭信息,進行身份校驗。

import feign.RequestInterceptor;
 
import feign.RequestTemplate;
 
    
 
public class MyRequestInterceptor implements RequestInterceptor{
 
    
 
public void apply(RequestTemplatetemplate){
 
template.header("Authorization","123");
 
}
 
}

服務端可以通過HttpServletRequest獲取到前面傳遞的參數,具體獲取邏輯如下:

RequestAttributes requestAttributes = RequestContextHolder.currentRequestAttributes();
if (requestAttributes != null) {
     HttpServletRequest request = ((ServletRequestAttributes) requestAttributes).getRequest();
     request.getHeader("Authorization");
 }
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章