Skip to content

Commit a61593f

Browse files
Fix handling transformers properties. (#1037)
1 parent f30afc1 commit a61593f

File tree

5 files changed

+9
-57
lines changed

5 files changed

+9
-57
lines changed

spring-cloud-loadbalancer/src/main/java/org/springframework/cloud/loadbalancer/annotation/LoadBalancerClientConfiguration.java

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,6 @@
3030
import org.springframework.cloud.client.ServiceInstance;
3131
import org.springframework.cloud.client.discovery.DiscoveryClient;
3232
import org.springframework.cloud.client.discovery.ReactiveDiscoveryClient;
33-
import org.springframework.cloud.loadbalancer.config.XForwardedConfigurationCondition;
3433
import org.springframework.cloud.loadbalancer.core.ReactorLoadBalancer;
3534
import org.springframework.cloud.loadbalancer.core.RetryAwareServiceInstanceListSupplier;
3635
import org.springframework.cloud.loadbalancer.core.RoundRobinLoadBalancer;
@@ -100,7 +99,6 @@ public ServiceInstanceListSupplier zonePreferenceDiscoveryClientServiceInstanceL
10099
@Bean
101100
@ConditionalOnBean({ XForwardedHeadersTransformer.class, LoadBalancerClientFactory.class })
102101
@ConditionalOnMissingBean
103-
@Conditional(XForwardedConfigurationCondition.class)
104102
public XForwardedHeadersTransformer xForwarderHeadersTransformer(LoadBalancerClientFactory clientFactory) {
105103
return new XForwardedHeadersTransformer(clientFactory);
106104
}

spring-cloud-loadbalancer/src/main/java/org/springframework/cloud/loadbalancer/config/BlockingLoadBalancerClientAutoConfiguration.java

Lines changed: 0 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -35,13 +35,8 @@
3535
import org.springframework.cloud.loadbalancer.blocking.retry.BlockingLoadBalancedRetryFactory;
3636
import org.springframework.cloud.loadbalancer.core.LoadBalancerServiceInstanceCookieTransformer;
3737
import org.springframework.cloud.loadbalancer.support.LoadBalancerClientFactory;
38-
import org.springframework.cloud.loadbalancer.support.LoadBalancerEnvironmentPropertyUtils;
3938
import org.springframework.context.annotation.Bean;
40-
import org.springframework.context.annotation.Condition;
41-
import org.springframework.context.annotation.ConditionContext;
42-
import org.springframework.context.annotation.Conditional;
4339
import org.springframework.context.annotation.Configuration;
44-
import org.springframework.core.type.AnnotatedTypeMetadata;
4540
import org.springframework.retry.support.RetryTemplate;
4641
import org.springframework.web.client.RestTemplate;
4742

@@ -68,15 +63,13 @@ public LoadBalancerClient blockingLoadBalancerClient(LoadBalancerClientFactory l
6863
}
6964

7065
@Bean
71-
@Conditional(AddServiceInstanceCookieCondition.class)
7266
@ConditionalOnMissingBean(LoadBalancerServiceInstanceCookieTransformer.class)
7367
public LoadBalancerServiceInstanceCookieTransformer loadBalancerServiceInstanceCookieTransformer(
7468
LoadBalancerProperties properties) {
7569
return new LoadBalancerServiceInstanceCookieTransformer(properties.getStickySession());
7670
}
7771

7872
@Bean
79-
@Conditional(XForwardedConfigurationCondition.class)
8073
@ConditionalOnMissingBean(XForwardedHeadersTransformer.class)
8174
@ConditionalOnBean(LoadBalancerClientFactory.class)
8275
public XForwardedHeadersTransformer xForwarderHeadersTransformer(
@@ -98,14 +91,4 @@ LoadBalancedRetryFactory loadBalancedRetryFactory(
9891

9992
}
10093

101-
static class AddServiceInstanceCookieCondition implements Condition {
102-
103-
@Override
104-
public boolean matches(ConditionContext context, AnnotatedTypeMetadata metadata) {
105-
return LoadBalancerEnvironmentPropertyUtils.trueForClientOrDefault(context.getEnvironment(),
106-
"sticky-session.add-service-instance-cookie");
107-
}
108-
109-
}
110-
11194
}

spring-cloud-loadbalancer/src/main/java/org/springframework/cloud/loadbalancer/config/XForwardedConfigurationCondition.java

Lines changed: 0 additions & 38 deletions
This file was deleted.

spring-cloud-loadbalancer/src/main/java/org/springframework/cloud/loadbalancer/core/LoadBalancerServiceInstanceCookieTransformer.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -57,6 +57,9 @@ public HttpRequest transformRequest(HttpRequest request, ServiceInstance instanc
5757
}
5858
LoadBalancerProperties.StickySession stickySession = factory != null
5959
? factory.getProperties(instance.getServiceId()).getStickySession() : stickySessionProperties;
60+
if (!stickySession.isAddServiceInstanceCookie()) {
61+
return request;
62+
}
6063
String instanceIdCookieName = stickySession.getInstanceIdCookieName();
6164
if (!StringUtils.hasText(instanceIdCookieName)) {
6265
return request;

spring-cloud-loadbalancer/src/test/java/org/springframework/cloud/loadbalancer/core/LoadBalancerServiceInstanceCookieTransformerTests.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616

1717
package org.springframework.cloud.loadbalancer.core;
1818

19+
import org.junit.jupiter.api.BeforeEach;
1920
import org.junit.jupiter.api.Test;
2021

2122
import org.springframework.cloud.client.DefaultServiceInstance;
@@ -43,6 +44,11 @@ class LoadBalancerServiceInstanceCookieTransformerTests {
4344

4445
HttpRequest request = new MockClientHttpRequest();
4546

47+
@BeforeEach
48+
void setUp() {
49+
stickySessionProperties.setAddServiceInstanceCookie(true);
50+
}
51+
4652
@Test
4753
void shouldAddServiceInstanceCookieHeader() {
4854
HttpRequest newRequest = transformer.transformRequest(request, serviceInstance);

0 commit comments

Comments
 (0)