2
0
Эх сурвалжийг харах

Expose bean setters in @Configuration used by @EnableWebFluxSecurity

Fixes gh-6624
Joe Grandja 6 жил өмнө
parent
commit
5aacd0c955

+ 25 - 5
config/src/main/java/org/springframework/security/config/annotation/web/reactive/ServerHttpSecurityConfiguration.java

@@ -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());

+ 5 - 1
config/src/main/java/org/springframework/security/config/annotation/web/reactive/WebFluxSecurityConfiguration.java

@@ -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() {