Проблема лежит в UriComponentsBuilder
, который используется в RouteToRequestFilter
.
UriComponentsBuilder.fromUri(uri)
собирается создать карту параметров запроса. Поскольку это LinkedMultiValueMap
, вы видите переупорядочение используемых параметров запроса.
Обратите внимание, что RFC3986 содержит следующее
Компонент запроса содержит неиерархические данные, которые наряду с данными в компоненте пути (раздел 3.3) служат для идентификации ресурса в рамках схемы URI и полномочий по присвоению имен (если таковые имеются).
Поэтому я не думаю, что в Spring Cloud Gateway нужно что-то исправлять.
Чтобы исправить это в вашем шлюзе, вам нужно добавить пользовательский фильтр, который срабатывает после RouteToRequestFilter
, установив порядок на RouteToRequestUrlFilter.ROUTE_TO_URL_FILTER_ORDER + 1
.
Взгляните на RouteToRequestUrlFilter
, как обмен адаптирован для перехода к нижестоящему URI.
Надеюсь, это поможет! :)