• 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
  • 相关阅读:
    js:数据结构笔记13--检索算法
    ember.js:使用笔记9 开始单元测试
    js:数据结构笔记12--排序算法(2)
    js:数据结构笔记11--排序算法(1)
    js:数据结构笔记10--图和图算法
    js:数据结构笔记9--二叉树
    js:数据结构笔记8--集合
    js:数据结构笔记7--哈希表
    js:数据结构笔记6--字典
    js:数据结构笔记5--链表
  • 原文地址:https://www.cnblogs.com/lykbk/p/fddfdfgdgfdgfg656756565.html
Copyright © 2020-2023  润新知