Merge pull request #11162 from izeye:spring-security-filter-chain
* pr/11162: Polish "Use BeanIds.SPRING_SECURITY_FILTER_CHAIN" Use BeanIds.SPRING_SECURITY_FILTER_CHAIN
This commit is contained in:
commit
2ec0e76e3f
|
|
@ -42,6 +42,7 @@ import org.springframework.boot.web.servlet.server.ConfigurableServletWebServerF
|
||||||
import org.springframework.context.annotation.Bean;
|
import org.springframework.context.annotation.Bean;
|
||||||
import org.springframework.context.annotation.Configuration;
|
import org.springframework.context.annotation.Configuration;
|
||||||
import org.springframework.core.Ordered;
|
import org.springframework.core.Ordered;
|
||||||
|
import org.springframework.security.config.BeanIds;
|
||||||
import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity;
|
import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
@ -78,13 +79,13 @@ class ServletManagementChildContextConfiguration {
|
||||||
|
|
||||||
@Configuration
|
@Configuration
|
||||||
@ConditionalOnClass({ EnableWebSecurity.class, Filter.class })
|
@ConditionalOnClass({ EnableWebSecurity.class, Filter.class })
|
||||||
@ConditionalOnBean(name = "springSecurityFilterChain", search = SearchStrategy.ANCESTORS)
|
@ConditionalOnBean(name = BeanIds.SPRING_SECURITY_FILTER_CHAIN, search = SearchStrategy.ANCESTORS)
|
||||||
class ServletManagementContextSecurityConfiguration {
|
class ServletManagementContextSecurityConfiguration {
|
||||||
|
|
||||||
@Bean
|
@Bean
|
||||||
public Filter springSecurityFilterChain(HierarchicalBeanFactory beanFactory) {
|
public Filter springSecurityFilterChain(HierarchicalBeanFactory beanFactory) {
|
||||||
BeanFactory parent = beanFactory.getParentBeanFactory();
|
BeanFactory parent = beanFactory.getParentBeanFactory();
|
||||||
return parent.getBean("springSecurityFilterChain", Filter.class);
|
return parent.getBean(BeanIds.SPRING_SECURITY_FILTER_CHAIN, Filter.class);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -47,6 +47,7 @@ import org.springframework.context.annotation.Configuration;
|
||||||
import org.springframework.http.HttpMethod;
|
import org.springframework.http.HttpMethod;
|
||||||
import org.springframework.mock.web.MockHttpServletRequest;
|
import org.springframework.mock.web.MockHttpServletRequest;
|
||||||
import org.springframework.mock.web.MockServletContext;
|
import org.springframework.mock.web.MockServletContext;
|
||||||
|
import org.springframework.security.config.BeanIds;
|
||||||
import org.springframework.security.web.FilterChainProxy;
|
import org.springframework.security.web.FilterChainProxy;
|
||||||
import org.springframework.security.web.SecurityFilterChain;
|
import org.springframework.security.web.SecurityFilterChain;
|
||||||
import org.springframework.test.util.ReflectionTestUtils;
|
import org.springframework.test.util.ReflectionTestUtils;
|
||||||
|
|
@ -181,7 +182,7 @@ public class CloudFoundryActuatorAutoConfigurationTests {
|
||||||
.applyTo(this.context);
|
.applyTo(this.context);
|
||||||
this.context.refresh();
|
this.context.refresh();
|
||||||
FilterChainProxy securityFilterChain = (FilterChainProxy) this.context
|
FilterChainProxy securityFilterChain = (FilterChainProxy) this.context
|
||||||
.getBean("springSecurityFilterChain");
|
.getBean(BeanIds.SPRING_SECURITY_FILTER_CHAIN);
|
||||||
SecurityFilterChain chain = securityFilterChain.getFilterChains().get(0);
|
SecurityFilterChain chain = securityFilterChain.getFilterChains().get(0);
|
||||||
MockHttpServletRequest request = new MockHttpServletRequest();
|
MockHttpServletRequest request = new MockHttpServletRequest();
|
||||||
request.setServletPath("/cloudfoundryapplication/my-path");
|
request.setServletPath("/cloudfoundryapplication/my-path");
|
||||||
|
|
|
||||||
|
|
@ -19,6 +19,7 @@ package org.springframework.boot.autoconfigure.security;
|
||||||
import org.springframework.boot.autoconfigure.condition.ConditionalOnBean;
|
import org.springframework.boot.autoconfigure.condition.ConditionalOnBean;
|
||||||
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
|
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
|
||||||
import org.springframework.boot.autoconfigure.condition.ConditionalOnWebApplication;
|
import org.springframework.boot.autoconfigure.condition.ConditionalOnWebApplication;
|
||||||
|
import org.springframework.security.config.BeanIds;
|
||||||
import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity;
|
import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity;
|
||||||
import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter;
|
import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter;
|
||||||
|
|
||||||
|
|
@ -27,14 +28,14 @@ import org.springframework.security.config.annotation.web.configuration.WebSecur
|
||||||
* {@link EnableWebSecurity} annotation. This will make sure that the annotation is
|
* {@link EnableWebSecurity} annotation. This will make sure that the annotation is
|
||||||
* present with default security auto-configuration and also if the user adds custom
|
* present with default security auto-configuration and also if the user adds custom
|
||||||
* security and forgets to add the annotation. If {@link EnableWebSecurity} has already
|
* security and forgets to add the annotation. If {@link EnableWebSecurity} has already
|
||||||
* been added or if a bean with name springSecurityFilterChain has been configured by the
|
* been added or if a bean with name {@value BeanIds#SPRING_SECURITY_FILTER_CHAIN} has
|
||||||
* user, this will back-off.
|
* been configured by the user, this will back-off.
|
||||||
*
|
*
|
||||||
* @author Madhura Bhave
|
* @author Madhura Bhave
|
||||||
* @since 2.0.0
|
* @since 2.0.0
|
||||||
*/
|
*/
|
||||||
@ConditionalOnBean(WebSecurityConfigurerAdapter.class)
|
@ConditionalOnBean(WebSecurityConfigurerAdapter.class)
|
||||||
@ConditionalOnMissingBean(name = "springSecurityFilterChain")
|
@ConditionalOnMissingBean(name = BeanIds.SPRING_SECURITY_FILTER_CHAIN)
|
||||||
@ConditionalOnWebApplication(type = ConditionalOnWebApplication.Type.SERVLET)
|
@ConditionalOnWebApplication(type = ConditionalOnWebApplication.Type.SERVLET)
|
||||||
@EnableWebSecurity
|
@EnableWebSecurity
|
||||||
public class WebSecurityEnablerConfiguration {
|
public class WebSecurityEnablerConfiguration {
|
||||||
|
|
|
||||||
|
|
@ -30,6 +30,7 @@ import org.springframework.boot.web.embedded.tomcat.TomcatServletWebServerFactor
|
||||||
import org.springframework.context.annotation.Bean;
|
import org.springframework.context.annotation.Bean;
|
||||||
import org.springframework.context.annotation.Configuration;
|
import org.springframework.context.annotation.Configuration;
|
||||||
import org.springframework.context.annotation.Import;
|
import org.springframework.context.annotation.Import;
|
||||||
|
import org.springframework.security.config.BeanIds;
|
||||||
import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity;
|
import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity;
|
||||||
import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter;
|
import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter;
|
||||||
import org.springframework.security.oauth2.client.InMemoryOAuth2AuthorizedClientService;
|
import org.springframework.security.oauth2.client.InMemoryOAuth2AuthorizedClientService;
|
||||||
|
|
@ -123,7 +124,7 @@ public class OAuth2WebSecurityConfigurationTests {
|
||||||
@SuppressWarnings("unchecked")
|
@SuppressWarnings("unchecked")
|
||||||
private List<Filter> getAuthCodeFilters(AssertableApplicationContext context) {
|
private List<Filter> getAuthCodeFilters(AssertableApplicationContext context) {
|
||||||
FilterChainProxy filterChain = (FilterChainProxy) context
|
FilterChainProxy filterChain = (FilterChainProxy) context
|
||||||
.getBean("springSecurityFilterChain");
|
.getBean(BeanIds.SPRING_SECURITY_FILTER_CHAIN);
|
||||||
List<SecurityFilterChain> filterChains = filterChain.getFilterChains();
|
List<SecurityFilterChain> filterChains = filterChain.getFilterChains();
|
||||||
List<Filter> filters = (List<Filter>) ReflectionTestUtils
|
List<Filter> filters = (List<Filter>) ReflectionTestUtils
|
||||||
.getField(filterChains.get(0), "filters");
|
.getField(filterChains.get(0), "filters");
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue