From efee06fd9b42c6008b5b2cdd9320625f2e44ca4b Mon Sep 17 00:00:00 2001 From: Andy Wilkinson Date: Thu, 3 Sep 2015 17:48:43 +0100 Subject: [PATCH] Only configure remove devtools security if Spring Security is enabled MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Previously, RemoteDevToolsAutoConfiguration would try to configure Spring Security if it was on the classpath. This led to a failure if Spring Security was on the classpath but its auto-configuration was disabled. This commit updates the auto-configuration to be conditional on the presence of Spring Security’s ObjectPostProcessor bean. See gh-3889 --- .../autoconfigure/RemoteDevToolsAutoConfiguration.java | 3 +++ 1 file changed, 3 insertions(+) diff --git a/spring-boot-devtools/src/main/java/org/springframework/boot/devtools/autoconfigure/RemoteDevToolsAutoConfiguration.java b/spring-boot-devtools/src/main/java/org/springframework/boot/devtools/autoconfigure/RemoteDevToolsAutoConfiguration.java index 315dc897e52..588467fac35 100644 --- a/spring-boot-devtools/src/main/java/org/springframework/boot/devtools/autoconfigure/RemoteDevToolsAutoConfiguration.java +++ b/spring-boot-devtools/src/main/java/org/springframework/boot/devtools/autoconfigure/RemoteDevToolsAutoConfiguration.java @@ -25,6 +25,7 @@ import org.apache.commons.logging.LogFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Qualifier; 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.ConditionalOnMissingBean; import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; @@ -50,6 +51,7 @@ import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.core.annotation.Order; import org.springframework.http.server.ServerHttpRequest; +import org.springframework.security.config.annotation.ObjectPostProcessor; import org.springframework.security.config.annotation.web.builders.HttpSecurity; import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter; @@ -158,6 +160,7 @@ public class RemoteDevToolsAutoConfiguration { @Configuration @ConditionalOnClass(WebSecurityConfigurerAdapter.class) + @ConditionalOnBean(ObjectPostProcessor.class) static class RemoteDevToolsSecurityConfiguration { @Bean