spring cloud各個微服務之間如何相互調用(Feign、Feign帶token訪問服務接口)


 

1、首先先看什么是Feign。

 

這里引用“大漠知秋”的博文https://blog.csdn.net/wo18237095579/article/details/83343915

 

2、若其他服務的接口未做權限處理,參照上文第1點的博文即可。

 

3、若其他服務的接口做了權限的處理(例如OAuth 2)時該如何訪問?

 

a、有做權限處理的服務接口直接調用會造成調用時出現http 401未授權的錯誤,繼而導致最終服務的http 500內部服務器錯誤

 

b、解決方式:最方便的就是往請求頭里加上token,一起帶過去;

 

b1、Feign有提供一個接口,RequestInterceptor;只要實現這個接口,簡單做一些處理,比如說我們驗證請求頭的token叫Access-Token,我們就先取出當前請求的token,然后放到feign請求頭上;

 

b2、新建配置類

 

  1. @Configuration
  2. public class FeignConfig implements RequestInterceptor {
  3. @Override
  4. public void apply(RequestTemplate requestTemplate) {
  5. ServletRequestAttributes attributes = (ServletRequestAttributes)RequestContextHolder.getRequestAttributes();
  6. HttpServletRequest request = attributes.getRequest();
  7. requestTemplate.header(HttpHeaders.AUTHORIZATION, request.getHeader(HttpHeaders.AUTHORIZATION));
  8. }
  9. }

 

b3、在@FeignClient接口里添加configuration = {FeignConfig.class}

 

@FeignClientvalue="被調用的服務名",configuration={FeignConfig.class})

 

即可對做權限處理的服務接口進行調用

1、首先先看什么是Feign。 這里引用“大漠知秋”的博文https://blog.csdn.net/wo18237095579/article/details/83343915
[1, Shǒuxiān xiān kàn shénme shì Feign. Zhèlǐ yǐnyòng “dàmò zhī qiū” de bówén https://Blog.Csdn.Net/wo18237095579/article/details/83343915]
1. First look at what is Feign.

Here is a quote on "Da Mo Zhiqiu" https://blog.csdn.net/wo18237095579/article/details/83343915


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM