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

 

一、首先先看什麼是Feign。css

 

這裏引用「大漠知秋」的博文https://blog.csdn.net/wo18237095579/article/details/83343915服務器

 

二、若其餘服務的接口未作權限處理,參照上文第1點的博文便可。app

 

三、若其餘服務的接口作了權限的處理(例如OAuth 2)時該如何訪問?ide

 

a、有作權限處理的服務接口直接調用會形成調用時出現http 401未受權的錯誤,繼而致使最終服務的http 500內部服務器錯誤spa

 

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

 

b一、Feign有提供一個接口,RequestInterceptor;只要實現這個接口,簡單作一些處理,好比說咱們驗證請求頭的token叫Access-Token,咱們就先取出當前請求的token,而後放到feign請求頭上;code

 

b二、新建配置類blog

 

  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. }

 

b三、在@FeignClient接口裏添加configuration = {FeignConfig.class}token

 

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

 

便可對作權限處理的服務接口進行調用接口

一、首先先看什麼是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
相關文章
相關標籤/搜索