【发布时间】:2019-11-10 18:40:08
【问题描述】:
Spring Cloud Gateway 似乎正在重新排序我的查询参数以将重复的参数放在一起。
我正在尝试将一些请求路由到我们的某个端点到第三方系统。这些请求包括一些查询参数需要按特定顺序排列(包括一些重复的参数),或者第三方系统返回 500 错误,但是在接收到具有正确顺序的参数的初始请求后,Spring Cloud Gateway 会重新排序这些参数通过参数的第一个实例将重复项放在一起。
例子:
http://some-url.com/a/path/here?foo=bar&anotherParam=paramValue2&aThirdParam=paramValue3&foo=bar
变成:
http://some-url.com/a/path/here?foo=bar&foo=bar&anotherParam=paramValue2&aThirdParam=paramValue3
最后一个参数被第一个参数移动到的位置,因为它们具有相同的名称。
我需要的实际请求输出是查询参数无需更改即可传递。
【问题讨论】:
-
不确定。你用的是什么版本?你有任何查询参数过滤器吗?
-
我们使用的是 Spring Boot 2.1.1。我在没有查询参数过滤器的情况下进行了测试,但重新排序仍然发生。
-
@spencergibb 您认为自定义过滤器工厂能够更改查询参数吗?如果我们无法避免重新排序,我可以通过这种方式找到解决方法。
-
可能。我不知道是什么导致了重新排序。
标签: spring-cloud spring-cloud-gateway