Properly guard ManagementSecurityAutoConfiguration

ManagementSecurityAutoConfiguration fully relies on the presence of a
web environment, yet the configuration class itself was not guarded by
`@ConditionalOnWebApplication` (while nested config where).

This turned out to be a problem for command-line applications using
spring security (i.e. CRaSH integration).

Fixes gh-2112
This commit is contained in:
Stephane Nicoll 2014-12-12 16:15:38 +01:00
parent 8f6f25f88e
commit 11f5c76968
1 changed files with 1 additions and 2 deletions

View File

@ -79,6 +79,7 @@ import org.springframework.util.StringUtils;
* @author Dave Syer * @author Dave Syer
*/ */
@Configuration @Configuration
@ConditionalOnWebApplication
@ConditionalOnClass({ EnableWebSecurity.class }) @ConditionalOnClass({ EnableWebSecurity.class })
@AutoConfigureAfter(SecurityAutoConfiguration.class) @AutoConfigureAfter(SecurityAutoConfiguration.class)
@AutoConfigureBefore(FallbackWebSecurityAutoConfiguration.class) @AutoConfigureBefore(FallbackWebSecurityAutoConfiguration.class)
@ -172,7 +173,6 @@ public class ManagementSecurityAutoConfiguration {
@Configuration @Configuration
@ConditionalOnMissingBean(WebSecurityConfiguration.class) @ConditionalOnMissingBean(WebSecurityConfiguration.class)
@ConditionalOnWebApplication
@Conditional(WebSecurityEnablerCondition.class) @Conditional(WebSecurityEnablerCondition.class)
@EnableWebSecurity @EnableWebSecurity
protected static class WebSecurityEnabler extends AuthenticationManagerConfiguration { protected static class WebSecurityEnabler extends AuthenticationManagerConfiguration {
@ -200,7 +200,6 @@ public class ManagementSecurityAutoConfiguration {
@Configuration @Configuration
@ConditionalOnMissingBean({ ManagementWebSecurityConfigurerAdapter.class }) @ConditionalOnMissingBean({ ManagementWebSecurityConfigurerAdapter.class })
@ConditionalOnProperty(prefix = "management.security", name = "enabled", matchIfMissing = true) @ConditionalOnProperty(prefix = "management.security", name = "enabled", matchIfMissing = true)
@ConditionalOnWebApplication
@Order(ManagementServerProperties.BASIC_AUTH_ORDER) @Order(ManagementServerProperties.BASIC_AUTH_ORDER)
protected static class ManagementWebSecurityConfigurerAdapter extends protected static class ManagementWebSecurityConfigurerAdapter extends
WebSecurityConfigurerAdapter { WebSecurityConfigurerAdapter {