From 47f640c915265b0647caa9c14110d2754cef4bfe Mon Sep 17 00:00:00 2001 From: Timothy Date: Sat, 8 Feb 2020 14:37:12 -0600 Subject: [PATCH] Adds protected reconstructURI method. Allows URI mapping behavior to be overridden for ReactiveLoadBalancerClientFilter. Fixes gh-1524 --- .../gateway/filter/ReactiveLoadBalancerClientFilter.java | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/spring-cloud-gateway-core/src/main/java/org/springframework/cloud/gateway/filter/ReactiveLoadBalancerClientFilter.java b/spring-cloud-gateway-core/src/main/java/org/springframework/cloud/gateway/filter/ReactiveLoadBalancerClientFilter.java index 7b462653..86fe669a 100644 --- a/spring-cloud-gateway-core/src/main/java/org/springframework/cloud/gateway/filter/ReactiveLoadBalancerClientFilter.java +++ b/spring-cloud-gateway-core/src/main/java/org/springframework/cloud/gateway/filter/ReactiveLoadBalancerClientFilter.java @@ -105,7 +105,7 @@ public class ReactiveLoadBalancerClientFilter implements GlobalFilter, Ordered { DelegatingServiceInstance serviceInstance = new DelegatingServiceInstance( response.getServer(), overrideScheme); - URI requestUrl = LoadBalancerUriTools.reconstructURI(serviceInstance, uri); + URI requestUrl = reconstructURI(serviceInstance, uri); if (log.isTraceEnabled()) { log.trace("LoadBalancerClientFilter url chosen: " + requestUrl); @@ -114,6 +114,10 @@ public class ReactiveLoadBalancerClientFilter implements GlobalFilter, Ordered { }).then(chain.filter(exchange)); } + protected URI reconstructURI(ServiceInstance serviceInstance, URI original) { + return LoadBalancerUriTools.reconstructURI(serviceInstance, original); + } + private Mono> choose(ServerWebExchange exchange) { URI uri = exchange.getAttribute(GATEWAY_REQUEST_URL_ATTR); ReactorLoadBalancer loadBalancer = this.clientFactory