Commit 3b78aa94 authored by Andy Wilkinson's avatar Andy Wilkinson

Make Security auto-config conditional on spring-security-config

SecurityAutoConfiguration, via its import of
AuthenticationManagerConfiguration, requires spring-security-config
to be on the classpath as AuthenticationManagerConfiguration extends
GlobalAuthenticationConfigurerAdapter from spring-security-config.

This commit makes SecurityAutoConfiguration conditional on the
presence of GlobalAuthenticationConfigurerAdapter so that the
auto-configuration will be disabled in its absence rather than causing
an app to fail to start.

Closes gh-2046
parent 41c15f20
...@@ -27,6 +27,7 @@ import org.springframework.context.annotation.Import; ...@@ -27,6 +27,7 @@ import org.springframework.context.annotation.Import;
import org.springframework.security.authentication.AuthenticationEventPublisher; import org.springframework.security.authentication.AuthenticationEventPublisher;
import org.springframework.security.authentication.AuthenticationManager; import org.springframework.security.authentication.AuthenticationManager;
import org.springframework.security.authentication.DefaultAuthenticationEventPublisher; import org.springframework.security.authentication.DefaultAuthenticationEventPublisher;
import org.springframework.security.config.annotation.authentication.configurers.GlobalAuthenticationConfigurerAdapter;
import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter; import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter;
/** /**
...@@ -41,9 +42,11 @@ import org.springframework.security.config.annotation.web.configuration.WebSecur ...@@ -41,9 +42,11 @@ import org.springframework.security.config.annotation.web.configuration.WebSecur
* <code>@Configuration</code> of type {@link WebSecurityConfigurerAdapter}. * <code>@Configuration</code> of type {@link WebSecurityConfigurerAdapter}.
* *
* @author Dave Syer * @author Dave Syer
* @author Andy Wilkinson
*/ */
@Configuration @Configuration
@ConditionalOnClass(AuthenticationManager.class) @ConditionalOnClass({ AuthenticationManager.class,
GlobalAuthenticationConfigurerAdapter.class })
@EnableConfigurationProperties @EnableConfigurationProperties
@Import({ SpringBootWebSecurityConfiguration.class, @Import({ SpringBootWebSecurityConfiguration.class,
AuthenticationManagerConfiguration.class }) AuthenticationManagerConfiguration.class })
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment