spring cloud gateway全局过滤器 向request header中放数据_gateway中在header中添加信息-程序员宅基地

技术标签: java  spring cloud  gateway  

exchange.getRequest().getHeaders().set(); 是不能向 headers中放文件的

这时配置一个gateway全局过滤器  filter中 做了向 header放数据


@Component
public class AuthSignatureFilter implements GlobalFilter, Ordered {

    static Logger logger = LoggerFactory.getLogger(AuthSignatureFilter.class);

    /**
     * 全局过滤器 核心方法
     * @param exchange
     * @param chain
     * @return
     */
    @Override
    public Mono<Void> filter(ServerWebExchange exchange, GatewayFilterChain chain) {
        logger.info("request = {}",JSONArray.toJSONString( exchange.getRequest()) );
        String token = exchange.getRequest().getQueryParams().getFirst("authToken");
        //向headers中放文件,记得build
        ServerHttpRequest host = exchange.getRequest().mutate().header("a", "888").build();
        //将现在的request 变成 change对象 
        ServerWebExchange build = exchange.mutate().request(host).build();
        return chain.filter(build);
    }

    @Override
    public int getOrder() {
        return -200;
    }
}

这样发送给路由的request中就放了我们自定义的数据了

2019-11-19 更新

此方法在新版本中已经过时 使用新方法新方法

 Consumer<HttpHeaders> httpHeaders = httpHeader -> {
            httpHeader.set("aaaa", "bbb");
            httpHeader.set("xxx", "cc");
            httpHeader.set("bbxx", "bbbx");
            httpHeader.set("aaaa", "bbb");
        };
        ServerHttpRequest serverHttpRequest = exchange.getRequest().mutate().headers(httpHeaders).build();
        exchange.mutate().request(serverHttpRequest).build();

 

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qq_37616173/article/details/81068592

智能推荐

linux查看端口命令_liunx中如何查端口号命令-程序员宅基地

文章浏览阅读1.4k次。netstat -an|grep 80 查看80端口进程列表_liunx中如何查端口号命令

jmeter学习记录(1)接口之间的动态关联--同一个线程组_jmeter中线程组session一致-程序员宅基地

文章浏览阅读699次。多个http请求处于同一个线程组内,可以通过正则表达式提取数据(必要时需要用v函数拼接),然后直接引用变量到下一个接口即可一、业务场景:测试过程中,有时下一个接口需要用到上一个接口的参数,我们要按照业务逻辑进行动态关联。做接口测试时候,尤其碰到某个接口需要用到上一个接口的数据,那我们就需要用到提取器来提取我们需要的数据,然后为下一个接口所用,其实就是在动态关联的时候需要用到。我最近在做接口测试过程中,正好用到了正则表达式提取数据和使用v函数拼接后,在下个接口中引用变量的场景,把整个过程记录下来,免得_jmeter中线程组session一致

libcurl 的 curl_easy_setopt()_curlopt_ssl_verifypeer-程序员宅基地

文章浏览阅读836次。CURL *hCurl = curl_easy_init();curl_easy_setopt(hCurl, CURLOPT_SSL_VERIFYPEER, 1L);curl_easy_setopt(hCurl, CURLOPT_SSL_VERIFYHOST, 2L);1、HTTPS相关(1)CURL_VERIFY_PEER默认值为1,该参数表示是否验证HTTPS证书的合法性,就是用第三方证书机构颁发的CA数字证书来解密服务端返回的证书,来验证其合法性。可在编译时就将CA数字证书编译进去,._curlopt_ssl_verifypeer

机器视觉工业缺陷检测的那些事(一、光源)_1.单选题对于表面不反光物体,采用下列哪种入射角度的光源比较好a高角度照射b-程序员宅基地

文章浏览阅读1.4w次,点赞48次,收藏324次。机器视觉工业缺陷检测的那些事(一) 视觉工业检测大体分为工件尺寸测量与定位,和表面缺陷检测,及各种Logo标识的检测与识别等。尺寸测量主要是检测物体的长、宽、高,比较常见主要是物体的二维尺寸(宽和高)检测。表面缺陷检测主要是物体表面局部物理或者化学性质不均匀的区域,比较常见的有金属或者塑料制品表面的划痕(如:手机壳/屏幕表面的划痕)、斑点和孔洞(如:PCB板漏了焊点或者表面多了焊点),纸张表面的色差、脏污点、破损,纸制品表面的压痕、凸起,玻璃等非金属制品表面的杂质、破损、污点、平整度等..._1.单选题对于表面不反光物体,采用下列哪种入射角度的光源比较好a高角度照射b

AO4621-VB一款N+P—Channel沟道SOP8的MOSFET晶体管参数介绍与应用说明-程序员宅基地

文章浏览阅读123次,点赞4次,收藏2次。在不同的栅极-源极电压下,低RDS(ON)值分别为28mΩ和51mΩ,确保高效的功率管理。利用其高电压额定值、电流承载能力和低导通电阻,AO4621-VB为不同行业和应用提供了一种多功能的功率管理解决方案。4. 电池管理:在电动车辆、太阳能系统和便携设备等电池管理系统中,AO4621-VB可以处理高电流并提供可靠性能。1. 电机控制:AO4621-VB可用于电器、机器人和工业机械等电机控制电路,具有高电流承载能力和低导通电阻。5. 音频放大器:可用于音箱和耳机等音频放大电路,确保低失真和高保真音频输出。

北斗GPS车辆监控管理系统_北斗设备管理字段-程序员宅基地

文章浏览阅读335次。监控中心是在整个系统的“神经中枢”,集中实现监控、调度、接/处警,图像处理功能和其他信息服务,并对整个系统的软硬件进行协调、管理。●防盗报警:设备提供和原车防盗器对接的自定义检测线束,防盗器发出盗,报警数据上传到中心。●(可选)自定义报警:由用户根据需要连接各种检测开关,触发报警,例如防盗器报警。●自定义报警:支持1-2路自定义报警,如卸料是报警,车辆要接检测开关;●自定义报警:支持1-2路自定义报警,如卸料是报警,车辆要接检测开关;●紧急报警:驾驶员危险时按报警开关报警,中心必须人工干预才能取消;_北斗设备管理字段

随便推点

二、SpringBoot2核心功能--04单元测试--01-JUnit5单元测试及其注解-程序员宅基地

文章浏览阅读815次,点赞14次,收藏30次。JUnit Jupiter提供了JUnit5的新的编程模型,是JUnit5新特性的核心。@Test :表示方法是测试方法。但是与JUnit4的@Test不同,他的职责非常单一不能声明任何属性,拓展的测试将会由Jupiter提供额外测试。: 由于JUint已经发展多年,为了照顾老的项目,JUnit Vintage提供了兼容JUnit4.x,Junit3.x的测试引擎。: Junit Platform是在JVM上启动测试框架的基础,不仅支持Junit自制的测试引擎,其他测试引擎也都可以接入。

signature=f326654ec2c650c08589c4b3d37549aa,Squashed commit of the following:-程序员宅基地

文章浏览阅读4.1k次。commit 06145230c833c3db5dab8858e11bcd550a37c57fAuthor: Nick Coghlan Date: Thu Aug 29 23:26:53 2019 +1000bpo-37947: Avoid double-decrement in symtable recursion counting (GH-15593)With `symtable_visi..._squashed commit of the following:

Oracle 分析函数over,列转行函数pivot理解及综合运用(报表中的小计和合计)_oracle转置函数pivot-程序员宅基地

文章浏览阅读3.1k次。Oracle合计,根据列值条件进行多条件统计。_oracle转置函数pivot

跨域资源共享CORS漏洞_cors漏洞利用-程序员宅基地

文章浏览阅读1.3w次,点赞5次,收藏26次。0x01 漏洞简介跨域资源共享(CORS)是一种放宽同源策略的机制,它允许浏览器向跨源服务器,发出 XMLHttpRequest 请求,从而克服了 AJAX 只能同源使用的限制,以使不同的网站可以跨域获取数据,目前已经被绝大多数浏览器支持,并被主流网站广泛部署使用。跨域资源共享 CORS 漏洞主要是由于程序员配置不当,对于 Origin 源校验不严格,从而造成跨域问题,攻击者可以利用 CORS 错误配置漏洞,从恶意网站跨域读取受害网站的敏感信息。这里只做简单介绍,关于 CORS 漏洞的详细分析可以点击_cors漏洞利用

hdu 4512 吉哥系列故事——完美队形I(最长上升公共子序列)-程序员宅基地

文章浏览阅读609次。题意:给出n个人的身高,求这些人中连续的且满足对称、从做到中心递增的最大人数。题解:很明显,想到将序列倒序,然后两个串进行匹配最大上升公共子序列注意两点:一、像这样的23232 最长是3个人,所以匹配的二维循环中j最大不能超过n-i+1;二、要单独判断奇数偶数的匹配,否则奇数匹配结果会多1;#include#include#include#include#inc

IndexError: only integers, slices (`:`), ellipsis (`...`), numpy.newaxis (`None`) and integer or boo-程序员宅基地

文章浏览阅读3.6k次,点赞8次,收藏7次。一、除了像别人所说的索引问题,如索引不能用浮点数。二、还有一种可能是你原来pandas.DataFrame的数据已经转换成numpy.ndarray了,然后还在使用当时的表头如data[‘score’],这肯定是不行的,需要使用data = pd.DataFrame(data, columns=feature_col)来转换为dataframe继续使用。其中feature_col是你原来dataframe的表头,可以在原来是pandas.Dataframe格式时用feature_col = data._indexerror: only integers, slices (`:`), ellipsis (`...`), numpy.newaxis (`n

推荐文章

热门文章

相关标签