|  | @@ -39,6 +39,10 @@ import org.mockito.Mock;
 | 
	
		
			
				|  |  |  import org.mockito.junit.MockitoJUnitRunner;
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  import org.springframework.security.core.Authentication;
 | 
	
		
			
				|  |  | +import org.springframework.security.oauth2.client.registration.ReactiveClientRegistrationRepository;
 | 
	
		
			
				|  |  | +import org.springframework.security.oauth2.client.web.server.ServerAuthorizationRequestRepository;
 | 
	
		
			
				|  |  | +import org.springframework.security.oauth2.core.endpoint.OAuth2AuthorizationRequest;
 | 
	
		
			
				|  |  | +import org.springframework.security.oauth2.core.endpoint.TestOAuth2AuthorizationRequests;
 | 
	
		
			
				|  |  |  import org.springframework.security.web.authentication.preauth.x509.X509PrincipalExtractor;
 | 
	
		
			
				|  |  |  import org.springframework.security.web.server.authentication.ServerX509AuthenticationConverter;
 | 
	
		
			
				|  |  |  import reactor.core.publisher.Mono;
 | 
	
	
		
			
				|  | @@ -475,6 +479,28 @@ public class ServerHttpSecurityTests {
 | 
	
		
			
				|  |  |  		verify(customServerCsrfTokenRepository).loadToken(any());
 | 
	
		
			
				|  |  |  	}
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | +	@Test
 | 
	
		
			
				|  |  | +	public void shouldConfigureAuthorizationRequestRepositoryForOAuth2Login() {
 | 
	
		
			
				|  |  | +		ServerAuthorizationRequestRepository<OAuth2AuthorizationRequest> authorizationRequestRepository = mock(ServerAuthorizationRequestRepository.class);
 | 
	
		
			
				|  |  | +		ReactiveClientRegistrationRepository clientRegistrationRepository = mock(ReactiveClientRegistrationRepository.class);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +		OAuth2AuthorizationRequest authorizationRequest = TestOAuth2AuthorizationRequests.request().build();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +		when(authorizationRequestRepository.removeAuthorizationRequest(any())).thenReturn(Mono.just(authorizationRequest));
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +		SecurityWebFilterChain securityFilterChain = this.http
 | 
	
		
			
				|  |  | +				.oauth2Login()
 | 
	
		
			
				|  |  | +				.clientRegistrationRepository(clientRegistrationRepository)
 | 
	
		
			
				|  |  | +				.authorizationRequestRepository(authorizationRequestRepository)
 | 
	
		
			
				|  |  | +				.and()
 | 
	
		
			
				|  |  | +				.build();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +		WebTestClient client = WebTestClientBuilder.bindToWebFilters(securityFilterChain).build();
 | 
	
		
			
				|  |  | +		client.get().uri("/login/oauth2/code/registration-id").exchange();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +		verify(authorizationRequestRepository).removeAuthorizationRequest(any());
 | 
	
		
			
				|  |  | +	}
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |  	private boolean isX509Filter(WebFilter filter) {
 | 
	
		
			
				|  |  |  		try {
 | 
	
		
			
				|  |  |  			Object converter = ReflectionTestUtils.getField(filter, "authenticationConverter");
 |