From 451d962eee87e0842611777f6ef56ee05d882f9b Mon Sep 17 00:00:00 2001 From: David Turanski Date: Tue, 5 Oct 2021 14:20:55 -0400 Subject: [PATCH] Enable actuator discovery --- .../AppStarterWebFluxSecurityAutoConfiguration.java | 2 +- .../common/AppStarterWebSecurityAutoConfiguration.java | 1 + ...tiveSecurityEnabledManagementSecurityEnabledTests.java | 8 ++++++++ .../SecurityEnabledManagementSecurityEnabledTests.java | 8 ++++++++ 4 files changed, 18 insertions(+), 1 deletion(-) diff --git a/applications/stream-applications-core/stream-applications-security-common/src/main/java/org/springframework/cloud/stream/app/security/common/AppStarterWebFluxSecurityAutoConfiguration.java b/applications/stream-applications-core/stream-applications-security-common/src/main/java/org/springframework/cloud/stream/app/security/common/AppStarterWebFluxSecurityAutoConfiguration.java index db77166e..5fce38da 100644 --- a/applications/stream-applications-core/stream-applications-security-common/src/main/java/org/springframework/cloud/stream/app/security/common/AppStarterWebFluxSecurityAutoConfiguration.java +++ b/applications/stream-applications-core/stream-applications-security-common/src/main/java/org/springframework/cloud/stream/app/security/common/AppStarterWebFluxSecurityAutoConfiguration.java @@ -61,7 +61,7 @@ public class AppStarterWebFluxSecurityAutoConfiguration { .permitAll(); } else { - http.authorizeExchange().pathMatchers("/actuator/health", "/actuator/info", "/actuator/bindings") + http.authorizeExchange().pathMatchers("/actuator", "/actuator/health", "/actuator/info", "/actuator/bindings") .permitAll().anyExchange().authenticated(); http.httpBasic(); http.formLogin(); diff --git a/applications/stream-applications-core/stream-applications-security-common/src/main/java/org/springframework/cloud/stream/app/security/common/AppStarterWebSecurityAutoConfiguration.java b/applications/stream-applications-core/stream-applications-security-common/src/main/java/org/springframework/cloud/stream/app/security/common/AppStarterWebSecurityAutoConfiguration.java index 45173676..273a7976 100644 --- a/applications/stream-applications-core/stream-applications-security-common/src/main/java/org/springframework/cloud/stream/app/security/common/AppStarterWebSecurityAutoConfiguration.java +++ b/applications/stream-applications-core/stream-applications-security-common/src/main/java/org/springframework/cloud/stream/app/security/common/AppStarterWebSecurityAutoConfiguration.java @@ -60,6 +60,7 @@ public class AppStarterWebSecurityAutoConfiguration { } if (securityProperties.isEnabled()) { http.authorizeRequests() + .requestMatchers(EndpointRequest.toLinks()).permitAll() .requestMatchers(EndpointRequest.to("health", "info", "bindings")).permitAll() .requestMatchers(EndpointRequest.toAnyEndpoint()).authenticated() .and().formLogin().and().httpBasic(); diff --git a/applications/stream-applications-core/stream-applications-security-common/src/test/java/org/springframework/cloud/stream/app/security/common/ReactiveSecurityEnabledManagementSecurityEnabledTests.java b/applications/stream-applications-core/stream-applications-security-common/src/test/java/org/springframework/cloud/stream/app/security/common/ReactiveSecurityEnabledManagementSecurityEnabledTests.java index 2a7089b8..49f47fa8 100644 --- a/applications/stream-applications-core/stream-applications-security-common/src/test/java/org/springframework/cloud/stream/app/security/common/ReactiveSecurityEnabledManagementSecurityEnabledTests.java +++ b/applications/stream-applications-core/stream-applications-security-common/src/test/java/org/springframework/cloud/stream/app/security/common/ReactiveSecurityEnabledManagementSecurityEnabledTests.java @@ -35,6 +35,7 @@ import static org.assertj.core.api.Assertions.assertThat; */ @TestPropertySource(properties = { "spring.main.web-application-type=reactive", + "management.endpoints.web.discovery.enabled=true", "management.endpoints.web.exposure.include=health,info,env,bindings", "info.name=MY TEST APP"}) public class ReactiveSecurityEnabledManagementSecurityEnabledTests extends AbstractSecurityCommonTests { @@ -57,6 +58,13 @@ public class ReactiveSecurityEnabledManagementSecurityEnabledTests extends Abstr assertThat(response.getStatusCode()).isEqualTo(HttpStatus.OK); } + @Test + @SuppressWarnings("rawtypes") + public void testDiscoveryEndpoint() { + ResponseEntity response = this.restTemplate.getForEntity("/actuator", Map.class); + assertThat(response.getStatusCode()).isEqualTo(HttpStatus.OK); + } + @Test @SuppressWarnings("rawtypes") public void testBindingsEndpoint() { diff --git a/applications/stream-applications-core/stream-applications-security-common/src/test/java/org/springframework/cloud/stream/app/security/common/SecurityEnabledManagementSecurityEnabledTests.java b/applications/stream-applications-core/stream-applications-security-common/src/test/java/org/springframework/cloud/stream/app/security/common/SecurityEnabledManagementSecurityEnabledTests.java index 905aea68..02a0b8be 100644 --- a/applications/stream-applications-core/stream-applications-security-common/src/test/java/org/springframework/cloud/stream/app/security/common/SecurityEnabledManagementSecurityEnabledTests.java +++ b/applications/stream-applications-core/stream-applications-security-common/src/test/java/org/springframework/cloud/stream/app/security/common/SecurityEnabledManagementSecurityEnabledTests.java @@ -33,6 +33,7 @@ import static org.assertj.core.api.Assertions.assertThat; */ @TestPropertySource(properties = { "spring.main.web-application-type=servlet", + "management.endpoints.web.discovery.enabled=true", "management.endpoints.web.exposure.include=health,info,env", "info.name=MY TEST APP"}) public class SecurityEnabledManagementSecurityEnabledTests extends AbstractSecurityCommonTests { @@ -54,6 +55,13 @@ public class SecurityEnabledManagementSecurityEnabledTests extends AbstractSecur assertThat(response.getStatusCode()).isEqualTo(HttpStatus.OK); } + @Test + @SuppressWarnings("rawtypes") + public void testDiscoveryEndpoint() { + ResponseEntity response = this.restTemplate.getForEntity("/actuator", Map.class); + assertThat(response.getStatusCode()).isEqualTo(HttpStatus.OK); + } + // The ManagementWebSecurityAutoConfiguration exposes only Info and Health endpoint not Env! @Test @SuppressWarnings("rawtypes")