diff --git a/spring-cloud-commons/src/main/java/org/springframework/cloud/client/loadbalancer/RequestData.java b/spring-cloud-commons/src/main/java/org/springframework/cloud/client/loadbalancer/RequestData.java index d69eed2c..5589a3aa 100644 --- a/spring-cloud-commons/src/main/java/org/springframework/cloud/client/loadbalancer/RequestData.java +++ b/spring-cloud-commons/src/main/java/org/springframework/cloud/client/loadbalancer/RequestData.java @@ -74,6 +74,11 @@ public class RequestData { new HashMap<>()); } + public RequestData(ServerHttpRequest request, Map attributes) { + this(request.getMethod(), request.getURI(), request.getHeaders(), buildCookies(request.getCookies()), + attributes); + } + private static MultiValueMap buildCookies(MultiValueMap cookies) { HttpHeaders newCookies = new HttpHeaders(); if (cookies != null) { diff --git a/spring-cloud-loadbalancer/src/main/java/org/springframework/cloud/loadbalancer/annotation/LoadBalancerClientConfiguration.java b/spring-cloud-loadbalancer/src/main/java/org/springframework/cloud/loadbalancer/annotation/LoadBalancerClientConfiguration.java index 805c5ba3..d52a2d73 100644 --- a/spring-cloud-loadbalancer/src/main/java/org/springframework/cloud/loadbalancer/annotation/LoadBalancerClientConfiguration.java +++ b/spring-cloud-loadbalancer/src/main/java/org/springframework/cloud/loadbalancer/annotation/LoadBalancerClientConfiguration.java @@ -56,6 +56,7 @@ import org.springframework.web.reactive.function.client.WebClient; * @author Olga Maciaszek-Sharma * @author Tim Ysewyn * @author BaoLin Zhu + * @author changjin wei(魏昌进) */ @Configuration(proxyBeanMethods = false) @ConditionalOnDiscoveryEnabled @@ -97,7 +98,7 @@ public class LoadBalancerClientConfiguration { } @Bean - @ConditionalOnBean({ XForwardedHeadersTransformer.class, LoadBalancerClientFactory.class }) + @ConditionalOnBean(LoadBalancerClientFactory.class) @ConditionalOnMissingBean public XForwardedHeadersTransformer xForwarderHeadersTransformer(LoadBalancerClientFactory clientFactory) { return new XForwardedHeadersTransformer(clientFactory);