From fb8a8e5bb0c25dd4f6b81923e760e5736db8acfd Mon Sep 17 00:00:00 2001 From: Andy Wilkinson Date: Tue, 19 Aug 2025 17:46:06 +0100 Subject: [PATCH] Make WebTestClient auto-config back off without CodecCustomizer Fixes gh-46678 --- .../web/reactive/WebTestClientAutoConfiguration.java | 2 +- .../web/reactive/WebTestClientAutoConfigurationTests.java | 8 ++++++++ 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/module/spring-boot-test-autoconfigure/src/main/java/org/springframework/boot/test/autoconfigure/web/reactive/WebTestClientAutoConfiguration.java b/module/spring-boot-test-autoconfigure/src/main/java/org/springframework/boot/test/autoconfigure/web/reactive/WebTestClientAutoConfiguration.java index 98bdbff65cc..cd78bff2671 100644 --- a/module/spring-boot-test-autoconfigure/src/main/java/org/springframework/boot/test/autoconfigure/web/reactive/WebTestClientAutoConfiguration.java +++ b/module/spring-boot-test-autoconfigure/src/main/java/org/springframework/boot/test/autoconfigure/web/reactive/WebTestClientAutoConfiguration.java @@ -44,7 +44,7 @@ import org.springframework.web.server.WebHandler; */ @AutoConfiguration(afterName = { "org.springframework.boot.http.codec.autoconfigure.CodecsAutoConfiguration", "org.springframework.boot.webflux.autoconfigure.WebFluxAutoConfiguration" }) -@ConditionalOnClass({ WebClient.class, WebTestClient.class }) +@ConditionalOnClass({ CodecCustomizer.class, WebClient.class, WebTestClient.class }) @Import(WebTestClientSecurityConfiguration.class) @EnableConfigurationProperties public final class WebTestClientAutoConfiguration { diff --git a/module/spring-boot-test-autoconfigure/src/test/java/org/springframework/boot/test/autoconfigure/web/reactive/WebTestClientAutoConfigurationTests.java b/module/spring-boot-test-autoconfigure/src/test/java/org/springframework/boot/test/autoconfigure/web/reactive/WebTestClientAutoConfigurationTests.java index 0d356dbd50a..2ca6cd83a06 100644 --- a/module/spring-boot-test-autoconfigure/src/test/java/org/springframework/boot/test/autoconfigure/web/reactive/WebTestClientAutoConfigurationTests.java +++ b/module/spring-boot-test-autoconfigure/src/test/java/org/springframework/boot/test/autoconfigure/web/reactive/WebTestClientAutoConfigurationTests.java @@ -119,6 +119,14 @@ class WebTestClientAutoConfigurationTests { }); } + @Test + void shouldBackOffWithoutCodecCustomizer() { + FilteredClassLoader classLoader = new FilteredClassLoader(CodecCustomizer.class); + this.contextRunner.withUserConfiguration(BaseConfiguration.class) + .withClassLoader(classLoader) + .run((context) -> assertThat(context).doesNotHaveBean(WebTestClient.class)); + } + @Configuration(proxyBeanMethods = false) static class BaseConfiguration {