From cc8ecb6ff561517e8dea75d81c0303345f1d6301 Mon Sep 17 00:00:00 2001 From: Dave Syer Date: Mon, 12 Dec 2016 15:05:07 +0000 Subject: [PATCH 1/2] Clear VCAP_APPLICATION after tests So that other CF tests do not fail. --- .../boot/actuate/endpoint/EnvironmentEndpointTests.java | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/spring-boot-actuator/src/test/java/org/springframework/boot/actuate/endpoint/EnvironmentEndpointTests.java b/spring-boot-actuator/src/test/java/org/springframework/boot/actuate/endpoint/EnvironmentEndpointTests.java index f642dcdcfa9..62df5f8b0d7 100644 --- a/spring-boot-actuator/src/test/java/org/springframework/boot/actuate/endpoint/EnvironmentEndpointTests.java +++ b/spring-boot-actuator/src/test/java/org/springframework/boot/actuate/endpoint/EnvironmentEndpointTests.java @@ -19,6 +19,7 @@ package org.springframework.boot.actuate.endpoint; import java.util.Collections; import java.util.Map; +import org.junit.After; import org.junit.Test; import org.springframework.boot.context.properties.EnableConfigurationProperties; @@ -45,6 +46,12 @@ public class EnvironmentEndpointTests extends AbstractEndpointTests Date: Mon, 12 Dec 2016 15:05:48 +0000 Subject: [PATCH 2/2] Make the Spring Security part of CF autoconfig conditional Otherwise you get a class not found exception at runtime in CF when Spring Securtity is not on the classpath. --- ...CloudFoundryActuatorAutoConfiguration.java | 30 ++++++++++++------- 1 file changed, 20 insertions(+), 10 deletions(-) diff --git a/spring-boot-actuator/src/main/java/org/springframework/boot/actuate/cloudfoundry/CloudFoundryActuatorAutoConfiguration.java b/spring-boot-actuator/src/main/java/org/springframework/boot/actuate/cloudfoundry/CloudFoundryActuatorAutoConfiguration.java index 68e51c8258a..d5b2feea7f4 100644 --- a/spring-boot-actuator/src/main/java/org/springframework/boot/actuate/cloudfoundry/CloudFoundryActuatorAutoConfiguration.java +++ b/spring-boot-actuator/src/main/java/org/springframework/boot/actuate/cloudfoundry/CloudFoundryActuatorAutoConfiguration.java @@ -26,6 +26,7 @@ import org.springframework.boot.actuate.endpoint.mvc.NamedMvcEndpoint; import org.springframework.boot.autoconfigure.AutoConfigureAfter; import org.springframework.boot.autoconfigure.EnableAutoConfiguration; import org.springframework.boot.autoconfigure.condition.ConditionalOnBean; +import org.springframework.boot.autoconfigure.condition.ConditionalOnClass; import org.springframework.boot.autoconfigure.condition.ConditionalOnCloudPlatform; import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; import org.springframework.boot.autoconfigure.security.IgnoredRequestCustomizer; @@ -98,18 +99,27 @@ public class CloudFoundryActuatorAutoConfiguration { return corsConfiguration; } - @Bean - public IgnoredRequestCustomizer cloudFoundryIgnoredRequestCustomizer() { - return new CloudFoundryIgnoredRequestCustomizer(); - } + /** + * Nested configuration for ignored requests if Spring Security is present. + * + */ + @ConditionalOnClass(WebSecurity.class) + static class CloudFoundryIgnoredRequestConfiguration { - private class CloudFoundryIgnoredRequestCustomizer - implements IgnoredRequestCustomizer { + @Bean + public IgnoredRequestCustomizer cloudFoundryIgnoredRequestCustomizer() { + return new CloudFoundryIgnoredRequestCustomizer(); + } + + private static class CloudFoundryIgnoredRequestCustomizer + implements IgnoredRequestCustomizer { + + @Override + public void customize(WebSecurity.IgnoredRequestConfigurer configurer) { + configurer.requestMatchers( + new AntPathRequestMatcher("/cloudfoundryapplication/**")); + } - @Override - public void customize(WebSecurity.IgnoredRequestConfigurer configurer) { - configurer.requestMatchers( - new AntPathRequestMatcher("/cloudfoundryapplication/**")); } }