Expose bean setters in @Configuration used by @EnableWebFluxSecurity

Fixes gh-6624
This commit is contained in:
Joe Grandja 2019-04-09 05:57:45 -04:00
parent 2c136f7b6c
commit 5aacd0c955
2 changed files with 30 additions and 6 deletions

View File

@ -47,24 +47,44 @@ class ServerHttpSecurityConfiguration implements WebFluxConfigurer {
private static final String BEAN_NAME_PREFIX = "org.springframework.security.config.annotation.web.reactive.HttpSecurityConfiguration.";
private static final String HTTPSECURITY_BEAN_NAME = BEAN_NAME_PREFIX + "httpSecurity";
@Autowired(required = false)
private ReactiveAdapterRegistry adapterRegistry = new ReactiveAdapterRegistry();
@Autowired(required = false)
private ReactiveAuthenticationManager authenticationManager;
@Autowired(required = false)
private ReactiveUserDetailsService reactiveUserDetailsService;
@Autowired(required = false)
private PasswordEncoder passwordEncoder;
@Autowired(required = false)
private ReactiveUserDetailsPasswordService userDetailsPasswordService;
@Autowired(required = false)
private BeanFactory beanFactory;
@Autowired(required = false)
void setAdapterRegistry(ReactiveAdapterRegistry adapterRegistry) {
this.adapterRegistry = adapterRegistry;
}
@Autowired(required = false)
void setAuthenticationManager(ReactiveAuthenticationManager authenticationManager) {
this.authenticationManager = authenticationManager;
}
@Autowired(required = false)
void setReactiveUserDetailsService(ReactiveUserDetailsService reactiveUserDetailsService) {
this.reactiveUserDetailsService = reactiveUserDetailsService;
}
@Autowired(required = false)
void setPasswordEncoder(PasswordEncoder passwordEncoder) {
this.passwordEncoder = passwordEncoder;
}
@Autowired(required = false)
void setUserDetailsPasswordService(ReactiveUserDetailsPasswordService userDetailsPasswordService) {
this.userDetailsPasswordService = userDetailsPasswordService;
}
@Override
public void configureArgumentResolvers(ArgumentResolverConfigurer configurer) {
configurer.addCustomResolver(authenticationPrincipalArgumentResolver());

View File

@ -51,12 +51,16 @@ class WebFluxSecurityConfiguration {
private static final boolean isOAuth2Present = ClassUtils.isPresent(
REACTIVE_CLIENT_REGISTRATION_REPOSITORY_CLASSNAME, WebFluxSecurityConfiguration.class.getClassLoader());
@Autowired(required = false)
private List<SecurityWebFilterChain> securityWebFilterChains;
@Autowired
ApplicationContext context;
@Autowired(required = false)
void setSecurityWebFilterChains(List<SecurityWebFilterChain> securityWebFilterChains) {
this.securityWebFilterChains = securityWebFilterChains;
}
@Bean(SPRING_SECURITY_WEBFILTERCHAINFILTER_BEAN_NAME)
@Order(value = WEB_FILTER_CHAIN_FILTER_ORDER)
public WebFilterChainProxy springSecurityWebFilterChainFilter() {