|  | @@ -25,6 +25,7 @@ import org.springframework.security.oauth2.client.OAuth2AuthorizeRequest;
 | 
	
		
			
				|  |  |  import org.springframework.security.oauth2.client.OAuth2AuthorizedClient;
 | 
	
		
			
				|  |  |  import org.springframework.security.oauth2.client.OAuth2AuthorizedClientManager;
 | 
	
		
			
				|  |  |  import org.springframework.security.oauth2.client.OAuth2AuthorizedClientProvider;
 | 
	
		
			
				|  |  | +import org.springframework.security.oauth2.client.OAuth2AuthorizedClientProviderBuilder;
 | 
	
		
			
				|  |  |  import org.springframework.security.oauth2.client.RemoveAuthorizedClientOAuth2AuthorizationFailureHandler;
 | 
	
		
			
				|  |  |  import org.springframework.security.oauth2.client.registration.ClientRegistration;
 | 
	
		
			
				|  |  |  import org.springframework.security.oauth2.client.registration.ClientRegistrationRepository;
 | 
	
	
		
			
				|  | @@ -83,9 +84,16 @@ import java.util.function.Function;
 | 
	
		
			
				|  |  |   * @see OAuth2AuthorizationFailureHandler
 | 
	
		
			
				|  |  |   */
 | 
	
		
			
				|  |  |  public final class DefaultOAuth2AuthorizedClientManager implements OAuth2AuthorizedClientManager {
 | 
	
		
			
				|  |  | +	private static final OAuth2AuthorizedClientProvider DEFAULT_AUTHORIZED_CLIENT_PROVIDER =
 | 
	
		
			
				|  |  | +			OAuth2AuthorizedClientProviderBuilder.builder()
 | 
	
		
			
				|  |  | +					.authorizationCode()
 | 
	
		
			
				|  |  | +					.refreshToken()
 | 
	
		
			
				|  |  | +					.clientCredentials()
 | 
	
		
			
				|  |  | +					.password()
 | 
	
		
			
				|  |  | +					.build();
 | 
	
		
			
				|  |  |  	private final ClientRegistrationRepository clientRegistrationRepository;
 | 
	
		
			
				|  |  |  	private final OAuth2AuthorizedClientRepository authorizedClientRepository;
 | 
	
		
			
				|  |  | -	private OAuth2AuthorizedClientProvider authorizedClientProvider = context -> null;
 | 
	
		
			
				|  |  | +	private OAuth2AuthorizedClientProvider authorizedClientProvider;
 | 
	
		
			
				|  |  |  	private Function<OAuth2AuthorizeRequest, Map<String, Object>> contextAttributesMapper;
 | 
	
		
			
				|  |  |  	private OAuth2AuthorizationSuccessHandler authorizationSuccessHandler;
 | 
	
		
			
				|  |  |  	private OAuth2AuthorizationFailureHandler authorizationFailureHandler;
 | 
	
	
		
			
				|  | @@ -102,6 +110,7 @@ public final class DefaultOAuth2AuthorizedClientManager implements OAuth2Authori
 | 
	
		
			
				|  |  |  		Assert.notNull(authorizedClientRepository, "authorizedClientRepository cannot be null");
 | 
	
		
			
				|  |  |  		this.clientRegistrationRepository = clientRegistrationRepository;
 | 
	
		
			
				|  |  |  		this.authorizedClientRepository = authorizedClientRepository;
 | 
	
		
			
				|  |  | +		this.authorizedClientProvider = DEFAULT_AUTHORIZED_CLIENT_PROVIDER;
 | 
	
		
			
				|  |  |  		this.contextAttributesMapper = new DefaultContextAttributesMapper();
 | 
	
		
			
				|  |  |  		this.authorizationSuccessHandler = (authorizedClient, principal, attributes) ->
 | 
	
		
			
				|  |  |  				authorizedClientRepository.saveAuthorizedClient(authorizedClient, principal,
 |