Class DefaultOAuth2UserService
java.lang.Object
org.springframework.security.oauth2.client.userinfo.DefaultOAuth2UserService
- All Implemented Interfaces:
- OAuth2UserService<OAuth2UserRequest,- OAuth2User> 
public class DefaultOAuth2UserService
extends Object
implements OAuth2UserService<OAuth2UserRequest,OAuth2User> 
An implementation of an 
OAuth2UserService that supports standard OAuth 2.0
 Provider's.
 
 For standard OAuth 2.0 Provider's, the attribute name used to access the user's name
 from the UserInfo response is required and therefore must be available via
 UserInfoEndpoint.getUserNameAttributeName().
 
NOTE: Attribute names are not standardized between providers and therefore will vary. Please consult the provider's API documentation for the set of supported user attribute names.
- Since:
- 5.0
- See Also:
- 
Constructor SummaryConstructors
- 
Method SummaryModifier and TypeMethodDescriptionloadUser(OAuth2UserRequest userRequest) Returns anOAuth2Userafter obtaining the user attributes of the End-User from the UserInfo Endpoint.voidsetAttributesConverter(org.springframework.core.convert.converter.Converter<OAuth2UserRequest, org.springframework.core.convert.converter.Converter<Map<String, Object>, Map<String, Object>>> attributesConverter) Use this strategy to adapt user attributes into a format understood by Spring Security; by default, the original attributes are preserved.final voidsetRequestEntityConverter(org.springframework.core.convert.converter.Converter<OAuth2UserRequest, org.springframework.http.RequestEntity<?>> requestEntityConverter) Sets theConverterused for converting theOAuth2UserRequestto aRequestEntityrepresentation of the UserInfo Request.final voidsetRestOperations(org.springframework.web.client.RestOperations restOperations) Sets theRestOperationsused when requesting the UserInfo resource.
- 
Constructor Details- 
DefaultOAuth2UserServicepublic DefaultOAuth2UserService()
 
- 
- 
Method Details- 
loadUserDescription copied from interface:OAuth2UserServiceReturns anOAuth2Userafter obtaining the user attributes of the End-User from the UserInfo Endpoint.- Specified by:
- loadUserin interface- OAuth2UserService<OAuth2UserRequest,- OAuth2User> 
- Parameters:
- userRequest- the user request
- Returns:
- an OAuth2User
- Throws:
- OAuth2AuthenticationException- if an error occurs while attempting to obtain the user attributes from the UserInfo Endpoint
 
- 
setAttributesConverterpublic void setAttributesConverter(org.springframework.core.convert.converter.Converter<OAuth2UserRequest, org.springframework.core.convert.converter.Converter<Map<String, Object>, Map<String, Object>>> attributesConverter) Use this strategy to adapt user attributes into a format understood by Spring Security; by default, the original attributes are preserved.This can be helpful, for example, if the user attribute is nested. Since Spring Security needs the username attribute to be at the top level, you can use this method to do: DefaultOAuth2UserService userService = new DefaultOAuth2UserService(); userService.setAttributesConverter((userRequest) -> (attributes) -> Map<String, Object> userObject = (Map<String, Object>) attributes.get("user"); attributes.put("user-name", userObject.get("user-name")); return attributes; });- Parameters:
- attributesConverter- the attribute adaptation strategy to use
- Since:
- 6.3
 
- 
setRequestEntityConverterpublic final void setRequestEntityConverter(org.springframework.core.convert.converter.Converter<OAuth2UserRequest, org.springframework.http.RequestEntity<?>> requestEntityConverter) Sets theConverterused for converting theOAuth2UserRequestto aRequestEntityrepresentation of the UserInfo Request.- Parameters:
- requestEntityConverter- the- Converterused for converting to a- RequestEntityrepresentation of the UserInfo Request
- Since:
- 5.1
 
- 
setRestOperationspublic final void setRestOperations(org.springframework.web.client.RestOperations restOperations) Sets theRestOperationsused when requesting the UserInfo resource.NOTE: At a minimum, the supplied restOperationsmust be configured with the following:- ResponseErrorHandler-- OAuth2ErrorResponseErrorHandler
 - Parameters:
- restOperations- the- RestOperationsused when requesting the UserInfo resource
- Since:
- 5.1
 
 
-