zoukankan      html  css  js  c++  java
  • 微服务通过feign.RequestInterceptor传递参数

    Feign 支持请求拦截器,在发送请求前,可以对发送的模板进行操作,例如设置请求头等属性,自定请求拦截器需要实现 feign.RequestInterceptor 接口,该接口的方法 apply 有参数 template ,该参数类型为 RequestTemplate,我们可以根据实际情况对请求信息进行调整,示例如下:

    • 创建自定义请求拦截器,在发送请求前增加了一个请求头信息,进行身份校验。

    具体代码参考如下:

    import feign.RequestInterceptor;
    
    import feign.RequestTemplate;
    
       
    
    public class MyRequestInterceptor implements RequestInterceptor{
    
       
    
    public void apply(RequestTemplatetemplate){
    
    template.header("Authorization","123");
    
    }
    
    }
    

     服务端可以通过HttpServletRequest获取到前面传递的参数,具体获取逻辑如下:

     RequestAttributes requestAttributes = RequestContextHolder.currentRequestAttributes();
            if (requestAttributes != null) {
                HttpServletRequest request = ((ServletRequestAttributes) requestAttributes).getRequest();
                request.getHeader("Authorization");
            }
    

     就实现了各个微服务之间参数的传递。 

  • 相关阅读:
    【必备】史上最全的浏览器 CSS & JS Hack 手册(转)
    iScroll4.2.5中的无法滑动或点击的解决方案(转)
    无障碍网页设计(WCAG2.0)
    大小端
    TCP报文结构
    A*
    shell中uniq与sort -u 两种去重的对别
    login流程
    类模板成员函数
    game 角色相关记录
  • 原文地址:https://www.cnblogs.com/baizhanshi/p/10913590.html
Copyright © 2011-2022 走看看