|
47 | 47 | import org.springframework.security.test.context.annotation.SecurityTestExecutionListeners;
|
48 | 48 | import org.springframework.security.test.context.support.WithMockUser;
|
49 | 49 | import org.springframework.security.test.web.reactive.server.WebTestClientBuilder;
|
| 50 | +import org.springframework.security.web.reactive.result.method.annotation.AuthenticationPrincipalArgumentResolver; |
50 | 51 | import org.springframework.security.web.reactive.result.view.CsrfRequestDataValueProcessor;
|
51 | 52 | import org.springframework.security.web.server.SecurityWebFilterChain;
|
52 | 53 | import org.springframework.security.web.server.WebFilterChainProxy;
|
|
59 | 60 | import org.springframework.util.MultiValueMap;
|
60 | 61 | import org.springframework.web.bind.annotation.GetMapping;
|
61 | 62 | import org.springframework.web.bind.annotation.RestController;
|
| 63 | +import org.springframework.web.reactive.config.DelegatingWebFluxConfiguration; |
62 | 64 | import org.springframework.web.reactive.config.EnableWebFlux;
|
63 | 65 | import org.springframework.web.reactive.function.BodyInserters;
|
64 | 66 | import org.springframework.web.reactive.result.view.AbstractView;
|
@@ -434,4 +436,23 @@ static class Child {
|
434 | 436 | Child() {
|
435 | 437 | }
|
436 | 438 | }
|
| 439 | + |
| 440 | + @Test |
| 441 | + // gh-8596 |
| 442 | + public void resolveAuthenticationPrincipalArgumentResolverFirstDoesNotCauseBeanCurrentlyInCreationException() { |
| 443 | + this.spring.register(EnableWebFluxSecurityConfiguration.class, |
| 444 | + ReactiveAuthenticationTestConfiguration.class, |
| 445 | + DelegatingWebFluxConfiguration.class).autowire(); |
| 446 | + } |
| 447 | + |
| 448 | + @EnableWebFluxSecurity |
| 449 | + @Configuration(proxyBeanMethods = false) |
| 450 | + static class EnableWebFluxSecurityConfiguration { |
| 451 | + /** |
| 452 | + * It is necessary to Autowire AuthenticationPrincipalArgumentResolver because it triggers eager loading of |
| 453 | + * AuthenticationPrincipalArgumentResolver bean which causes BeanCurrentlyInCreationException |
| 454 | + */ |
| 455 | + @Autowired |
| 456 | + AuthenticationPrincipalArgumentResolver resolver; |
| 457 | + } |
437 | 458 | }
|
0 commit comments