feign调用多个服务_spring cloud各个微服务之间如何相互调用(Feign、Feign带token访问服务接口)...
1、首先先看什么是Feign。
2、若其他服務(wù)的接口未做權(quán)限處理,參照上文第1點的博文即可。
3、若其他服務(wù)的接口做了權(quán)限的處理(例如OAuth 2)時該如何訪問?
a、有做權(quán)限處理的服務(wù)接口直接調(diào)用會造成調(diào)用時出現(xiàn)http 401未授權(quán)的錯誤,繼而導(dǎo)致最終服務(wù)的http 500內(nèi)部服務(wù)器錯誤
b、解決方式:最方便的就是往請求頭里加上token,一起帶過去;
b1、Feign有提供一個接口,RequestInterceptor;只要實現(xiàn)這個接口,簡單做一些處理,比如說我們驗證請求頭的token叫Access-Token,我們就先取出當(dāng)前請求的token,然后放到feign請求頭上;
b2、新建配置類
@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));
}
}
b3、在@FeignClient接口里添加configuration = {FeignConfig.class}
@FeignClient(value="被調(diào)用的服務(wù)名",configuration={FeignConfig.class})
即可對做權(quán)限處理的服務(wù)接口進(jìn)行調(diào)用
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
總結(jié)
以上是生活随笔為你收集整理的feign调用多个服务_spring cloud各个微服务之间如何相互调用(Feign、Feign带token访问服务接口)...的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: android 模糊读取文件名_Andr
- 下一篇: 计算机对教育的影响雅思听力,雅思听力机考