一、首先先看什麼是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
-
@Configuration
-
public class FeignConfig implements RequestInterceptor {
-
@Override
-
public void apply(RequestTemplate requestTemplate) {
-
ServletRequestAttributes attributes = (ServletRequestAttributes)RequestContextHolder.getRequestAttributes();
-
HttpServletRequest request = attributes.getRequest();
-
requestTemplate.header(HttpHeaders.AUTHORIZATION, request.getHeader(HttpHeaders.AUTHORIZATION));
-
}
-
}
b三、在@FeignClient接口裏添加configuration = {FeignConfig.class}token
@FeignClient(value="被調用的服務名",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