Skip to content

Commit 0ec7d60

Browse files
authored
fix(RegistrationClient): set timeouts properly (#2616)
* fix(RegistrationClient): set timeouts properly * java format * java format
1 parent f1f6ac6 commit 0ec7d60

File tree

4 files changed

+45
-16
lines changed

4 files changed

+45
-16
lines changed

spring-boot-admin-client/src/main/java/de/codecentric/boot/admin/client/config/SpringBootAdminClientAutoConfiguration.java

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -139,11 +139,13 @@ public static class BlockingRegistrationClientConfig {
139139
@Bean
140140
@ConditionalOnMissingBean
141141
public RegistrationClient registrationClient(ClientProperties client) {
142-
RestTemplateBuilder builder = new RestTemplateBuilder().setConnectTimeout(client.getConnectTimeout());
143-
builder.setReadTimeout(client.getReadTimeout());
142+
RestTemplateBuilder builder = new RestTemplateBuilder().setConnectTimeout(client.getConnectTimeout())
143+
.setReadTimeout(client.getReadTimeout());
144+
144145
if (client.getUsername() != null && client.getPassword() != null) {
145146
builder = builder.basicAuthentication(client.getUsername(), client.getPassword());
146147
}
148+
147149
RestTemplate build = builder.build();
148150
return new BlockingRegistrationClient(build);
149151
}

spring-boot-admin-client/src/test/java/de/codecentric/boot/admin/client/config/SpringBootAdminClientAutoConfigurationTest.java

Lines changed: 36 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,8 @@
3030
import org.springframework.boot.test.context.runner.WebApplicationContextRunner;
3131
import org.springframework.context.annotation.Bean;
3232
import org.springframework.context.annotation.Configuration;
33+
import org.springframework.http.client.ClientHttpRequestFactory;
34+
import org.springframework.test.util.ReflectionTestUtils;
3335
import org.springframework.web.client.RestTemplate;
3436

3537
import de.codecentric.boot.admin.client.registration.ApplicationRegistrator;
@@ -42,8 +44,8 @@ public class SpringBootAdminClientAutoConfigurationTest {
4244

4345
private final WebApplicationContextRunner contextRunner = new WebApplicationContextRunner()
4446
.withConfiguration(AutoConfigurations.of(EndpointAutoConfiguration.class, WebEndpointAutoConfiguration.class,
45-
DispatcherServletAutoConfiguration.class, RestTemplateAutoConfiguration.class,
46-
SpringBootAdminClientAutoConfiguration.class));
47+
DispatcherServletAutoConfiguration.class, RestTemplateAutoConfiguration.class,
48+
SpringBootAdminClientAutoConfiguration.class));
4749

4850
@Test
4951
public void not_active() {
@@ -60,7 +62,7 @@ public void active() {
6062
public void disabled() {
6163
this.contextRunner
6264
.withPropertyValues("spring.boot.admin.client.url:http://localhost:8081",
63-
"spring.boot.admin.client.enabled:false")
65+
"spring.boot.admin.client.enabled:false")
6466
.run((context) -> assertThat(context).doesNotHaveBean(ApplicationRegistrator.class));
6567
}
6668

@@ -77,20 +79,45 @@ public void nonWebEnvironment() {
7779
public void reactiveEnvironment() {
7880
ReactiveWebApplicationContextRunner reactiveContextRunner = new ReactiveWebApplicationContextRunner()
7981
.withConfiguration(
80-
AutoConfigurations.of(EndpointAutoConfiguration.class, WebEndpointAutoConfiguration.class,
81-
WebClientAutoConfiguration.class, SpringBootAdminClientAutoConfiguration.class))
82+
AutoConfigurations.of(EndpointAutoConfiguration.class, WebEndpointAutoConfiguration.class,
83+
WebClientAutoConfiguration.class, SpringBootAdminClientAutoConfiguration.class))
8284
.withBean(WebFluxProperties.class);
8385
reactiveContextRunner.withPropertyValues("spring.boot.admin.client.url:http://localhost:8081")
8486
.run((context) -> assertThat(context).hasSingleBean(ApplicationRegistrator.class));
8587
}
8688

89+
@Test
90+
public void blockingClientInBlockingEnvironment() {
91+
WebApplicationContextRunner webApplicationContextRunner = new WebApplicationContextRunner()
92+
.withConfiguration(AutoConfigurations.of(EndpointAutoConfiguration.class,
93+
WebEndpointAutoConfiguration.class, DispatcherServletAutoConfiguration.class,
94+
RestTemplateAutoConfiguration.class, SpringBootAdminClientAutoConfiguration.class));
95+
96+
webApplicationContextRunner
97+
.withPropertyValues("spring.boot.admin.client.url:http://localhost:8081",
98+
"spring.boot.admin.client.connectTimeout=1337", "spring.boot.admin.client.readTimeout=42")
99+
.run((context) -> {
100+
RegistrationClient registrationClient = context.getBean(RegistrationClient.class);
101+
RestTemplate restTemplate = (RestTemplate) ReflectionTestUtils.getField(registrationClient,
102+
"restTemplate");
103+
assertThat(restTemplate).isNotNull();
104+
105+
ClientHttpRequestFactory requestFactory = restTemplate.getRequestFactory();
106+
107+
Integer connectTimeout = (Integer) ReflectionTestUtils.getField(requestFactory, "connectTimeout");
108+
assertThat(connectTimeout).isEqualTo(1337);
109+
Integer readTimeout = (Integer) ReflectionTestUtils.getField(requestFactory, "readTimeout");
110+
assertThat(readTimeout).isEqualTo(42);
111+
});
112+
}
113+
87114
@Test
88115
public void customBlockingClientInReactiveEnvironment() {
89116
ReactiveWebApplicationContextRunner reactiveContextRunner = new ReactiveWebApplicationContextRunner()
90117
.withConfiguration(UserConfigurations.of(CustomBlockingConfiguration.class))
91118
.withConfiguration(
92-
AutoConfigurations.of(EndpointAutoConfiguration.class, WebEndpointAutoConfiguration.class,
93-
WebClientAutoConfiguration.class, SpringBootAdminClientAutoConfiguration.class))
119+
AutoConfigurations.of(EndpointAutoConfiguration.class, WebEndpointAutoConfiguration.class,
120+
WebClientAutoConfiguration.class, SpringBootAdminClientAutoConfiguration.class))
94121
.withBean(WebFluxProperties.class);
95122

96123
reactiveContextRunner.withPropertyValues("spring.boot.admin.client.url:http://localhost:8081")
@@ -106,8 +133,8 @@ public void customBlockingClientInBlockingEnvironment() {
106133
WebApplicationContextRunner webApplicationContextRunner = new WebApplicationContextRunner()
107134
.withConfiguration(UserConfigurations.of(CustomBlockingConfiguration.class))
108135
.withConfiguration(AutoConfigurations.of(EndpointAutoConfiguration.class,
109-
WebEndpointAutoConfiguration.class, DispatcherServletAutoConfiguration.class,
110-
RestTemplateAutoConfiguration.class, SpringBootAdminClientAutoConfiguration.class));
136+
WebEndpointAutoConfiguration.class, DispatcherServletAutoConfiguration.class,
137+
RestTemplateAutoConfiguration.class, SpringBootAdminClientAutoConfiguration.class));
111138

112139
webApplicationContextRunner.withPropertyValues("spring.boot.admin.client.url:http://localhost:8081")
113140
.run((context) -> {

spring-boot-admin-client/src/test/java/de/codecentric/boot/admin/client/config/SpringBootAdminClientCloudFoundryAutoConfigurationTest.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -36,9 +36,9 @@ public class SpringBootAdminClientCloudFoundryAutoConfigurationTest {
3636

3737
private final WebApplicationContextRunner contextRunner = new WebApplicationContextRunner()
3838
.withConfiguration(AutoConfigurations.of(EndpointAutoConfiguration.class, WebEndpointAutoConfiguration.class,
39-
WebMvcAutoConfiguration.class, DispatcherServletAutoConfiguration.class,
40-
RestTemplateAutoConfiguration.class, SpringBootAdminClientAutoConfiguration.class,
41-
SpringBootAdminClientCloudFoundryAutoConfiguration.class));
39+
WebMvcAutoConfiguration.class, DispatcherServletAutoConfiguration.class,
40+
RestTemplateAutoConfiguration.class, SpringBootAdminClientAutoConfiguration.class,
41+
SpringBootAdminClientCloudFoundryAutoConfiguration.class));
4242

4343
@Test
4444
public void non_cloud_platform() {

spring-boot-admin-server/src/test/java/de/codecentric/boot/admin/server/notify/MailNotifierIntegrationTest.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -40,8 +40,8 @@ class MailNotifierIntegrationTest implements WithAssertions {
4040
void fileProtocolIsNotAllowed() {
4141
assertThatThrownBy(() -> {
4242
URL resource = getClass().getClassLoader().getResource(".");
43-
mailNotifier.setTemplate("file://" + resource.getFile()
44-
+ "de/codecentric/boot/admin/server/notify/vulnerable-file.html");
43+
mailNotifier.setTemplate(
44+
"file://" + resource.getFile() + "de/codecentric/boot/admin/server/notify/vulnerable-file.html");
4545
mailNotifier.getBody(new Context());
4646
}).hasCauseInstanceOf(FileNotFoundException.class);
4747
}

0 commit comments

Comments
 (0)