Skip to content

Commit 881a9db

Browse files
committed
Make additional health web paths back off without web endpoint infra
1 parent 260f84f commit 881a9db

File tree

4 files changed

+24
-1
lines changed

4 files changed

+24
-1
lines changed

spring-boot-project/spring-boot-webflux/src/main/java/org/springframework/boot/webflux/autoconfigure/actuate/endpoint/web/WebFluxHealthEndpointExtensionAutoConfiguration.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@
2828
import org.springframework.boot.actuate.health.HealthEndpointGroups;
2929
import org.springframework.boot.autoconfigure.AutoConfiguration;
3030
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
31+
import org.springframework.boot.autoconfigure.condition.ConditionalOnBean;
3132
import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
3233
import org.springframework.boot.autoconfigure.condition.ConditionalOnWebApplication;
3334
import org.springframework.boot.autoconfigure.condition.ConditionalOnWebApplication.Type;
@@ -43,6 +44,7 @@
4344
*/
4445
@AutoConfiguration
4546
@ConditionalOnWebApplication(type = Type.REACTIVE)
47+
@ConditionalOnBean({ WebEndpointsSupplier.class, HealthEndpointGroups.class })
4648
@ConditionalOnClass(HealthEndpoint.class)
4749
@ConditionalOnAvailableEndpoint(endpoint = HealthEndpoint.class, exposure = EndpointExposure.WEB)
4850
public class WebFluxHealthEndpointExtensionAutoConfiguration {

spring-boot-project/spring-boot-webflux/src/test/java/org/springframework/boot/webflux/autoconfigure/actuate/endpoint/web/WebFluxHealthEndpointExtensionAutoConfigurationTests.java

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -67,6 +67,16 @@ void additionalReactiveHealthEndpointsPathsTolerateHealthEndpointThatIsNotWebExp
6767
});
6868
}
6969

70+
@Test
71+
@WithTestEndpointOutcomeExposureContributor
72+
void backsOffWithoutWebEndpointInfrastructure() {
73+
this.contextRunner.withConfiguration(AutoConfigurations.of(EndpointAutoConfiguration.class))
74+
.withPropertyValues("management.endpoints.web.exposure.exclude=*",
75+
"management.endpoints.test.exposure.include=*")
76+
.run((context) -> assertThat(context)
77+
.doesNotHaveBean(AdditionalHealthEndpointPathsWebFluxHandlerMapping.class));
78+
}
79+
7080
@Configuration(proxyBeanMethods = false)
7181
static class HealthIndicatorsConfiguration {
7282

spring-boot-project/spring-boot-webmvc/src/main/java/org/springframework/boot/webmvc/autoconfigure/actuate/endpoint/web/WebMvcHealthEndpointExtensionAutoConfiguration.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@
4444
@AutoConfiguration
4545
@ConditionalOnWebApplication(type = Type.SERVLET)
4646
@ConditionalOnClass(HealthEndpoint.class)
47-
@ConditionalOnBean(HealthEndpoint.class)
47+
@ConditionalOnBean({ HealthEndpoint.class, WebEndpointsSupplier.class, HealthEndpointGroups.class })
4848
@ConditionalOnAvailableEndpoint(endpoint = HealthEndpoint.class, exposure = EndpointExposure.WEB)
4949
public class WebMvcHealthEndpointExtensionAutoConfiguration {
5050

spring-boot-project/spring-boot-webmvc/src/test/java/org/springframework/boot/webmvc/actuate/autoconfigure/health/WebMvcHealthEndpointExtensionAutoConfigurationTests.java

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -67,6 +67,17 @@ void additionalHealthEndpointsPathsTolerateHealthEndpointThatIsNotWebExposed() {
6767
});
6868
}
6969

70+
@Test
71+
@WithTestEndpointOutcomeExposureContributor
72+
void backsOffWithoutWebEndpointInfrastructure() {
73+
this.contextRunner.withConfiguration(AutoConfigurations.of(EndpointAutoConfiguration.class))
74+
.withBean(DispatcherServlet.class)
75+
.withPropertyValues("management.endpoints.web.exposure.exclude=*",
76+
"management.endpoints.test.exposure.include=*")
77+
.run((context) -> assertThat(context)
78+
.doesNotHaveBean(AdditionalHealthEndpointPathsWebMvcHandlerMapping.class));
79+
}
80+
7081
@Configuration(proxyBeanMethods = false)
7182
static class HealthIndicatorsConfiguration {
7283

0 commit comments

Comments
 (0)