一、首先先看什么是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