Skip to content

Commit 3a84f4f

Browse files
committed
Do not override baseUrl from client builder with null.
1 parent 0fd812d commit 3a84f4f

File tree

3 files changed

+21
-10
lines changed

3 files changed

+21
-10
lines changed

spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/interfaceclients/http/RestClientAdapterProvider.java

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -50,18 +50,22 @@ public HttpExchangeAdapter get(ListableBeanFactory beanFactory, String clientId)
5050
return RestClientAdapter.create(userProvidedRestClient);
5151
}
5252
HttpInterfaceClientsProperties properties = this.propertiesProvider.getObject();
53+
String baseUrl = properties.getProperties(clientId).getBaseUrl();
5354
RestClient.Builder userProvidedRestClientBuilder = QualifiedBeanProvider.qualifiedBean(beanFactory,
5455
RestClient.Builder.class, clientId);
5556
if (userProvidedRestClientBuilder != null) {
56-
// TODO: should we do this or get it from the user?
57-
userProvidedRestClientBuilder.baseUrl(properties.getProperties(clientId).getBaseUrl());
57+
// If the user wants to set the baseUrl directly on the builder,
58+
// it should not be set in properties.
59+
if (baseUrl != null) {
60+
userProvidedRestClientBuilder.baseUrl(baseUrl);
61+
}
5862
return RestClientAdapter.create(userProvidedRestClientBuilder.build());
5963
}
6064
// create a RestClientAdapter bean with default implementation
6165
if (logger.isDebugEnabled()) {
6266
logger.debug("Creating RestClientAdapter for '" + clientId + "'");
6367
}
64-
RestClient restClient = this.builder.baseUrl(properties.getProperties(clientId).getBaseUrl()).build();
68+
RestClient restClient = this.builder.baseUrl(baseUrl).build();
6569
return RestClientAdapter.create(restClient);
6670
}
6771

spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/interfaceclients/http/RestTemplateAdapterProvider.java

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -51,19 +51,22 @@ public HttpExchangeAdapter get(ListableBeanFactory beanFactory, String clientId)
5151
return RestTemplateAdapter.create(userProvidedRestTemplate);
5252
}
5353
HttpInterfaceClientsProperties properties = this.propertiesProvider.getObject();
54+
String baseUrl = properties.getProperties(clientId).getBaseUrl();
5455
RestTemplateBuilder userProvidedRestTemplateBuilder = QualifiedBeanProvider.qualifiedBean(beanFactory,
5556
RestTemplateBuilder.class, clientId);
5657
if (userProvidedRestTemplateBuilder != null) {
57-
// TODO: should we do this or get it from the user?
58-
userProvidedRestTemplateBuilder.rootUri(properties.getProperties(clientId).getBaseUrl());
58+
// If the user wants to set the baseUrl directly on the builder,
59+
// it should not be set in properties.
60+
if (baseUrl != null) {
61+
userProvidedRestTemplateBuilder.rootUri(baseUrl);
62+
}
5963
return RestTemplateAdapter.create(userProvidedRestTemplateBuilder.build());
6064
}
6165
// create a RestTemplateAdapter bean with default implementation
6266
if (logger.isDebugEnabled()) {
6367
logger.debug("Creating RestTemplateAdapter for '" + clientId + "'");
6468
}
65-
RestTemplate restTemplate = this.restTemplateBuilder.rootUri(properties.getProperties(clientId).getBaseUrl())
66-
.build();
69+
RestTemplate restTemplate = this.restTemplateBuilder.rootUri(baseUrl).build();
6770
return RestTemplateAdapter.create(restTemplate);
6871
}
6972

spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/interfaceclients/http/WebClientAdapterProvider.java

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -49,18 +49,22 @@ public HttpExchangeAdapter get(ListableBeanFactory beanFactory, String clientId)
4949
return WebClientAdapter.create(userProvidedWebClient);
5050
}
5151
HttpInterfaceClientsProperties properties = this.propertiesProvider.getObject();
52+
String baseUrl = properties.getProperties(clientId).getBaseUrl();
5253
WebClient.Builder userProvidedWebClientBuilder = QualifiedBeanProvider.qualifiedBean(beanFactory,
5354
WebClient.Builder.class, clientId);
5455
if (userProvidedWebClientBuilder != null) {
55-
// TODO: should we do this or get it from the user?
56-
userProvidedWebClientBuilder.baseUrl(properties.getProperties(clientId).getBaseUrl());
56+
// If the user wants to set the baseUrl directly on the builder,
57+
// it should not be set in properties.
58+
if (baseUrl != null) {
59+
userProvidedWebClientBuilder.baseUrl(baseUrl);
60+
}
5761
return WebClientAdapter.create(userProvidedWebClientBuilder.build());
5862
}
5963
// create a WebClientAdapter bean with default implementation
6064
if (logger.isDebugEnabled()) {
6165
logger.debug("Creating WebClientAdapter for '" + clientId + "'");
6266
}
63-
WebClient webClient = this.builder.baseUrl(properties.getProperties(clientId).getBaseUrl()).build();
67+
WebClient webClient = this.builder.baseUrl(baseUrl).build();
6468
return WebClientAdapter.create(webClient);
6569
}
6670

0 commit comments

Comments
 (0)