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 Summary
-
Method Summary
Modifier and TypeMethodDescriptionloadUser
(OAuth2UserRequest userRequest) Returns anOAuth2User
after obtaining the user attributes of the End-User from the UserInfo Endpoint.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.final void
setRequestEntityConverter
(org.springframework.core.convert.converter.Converter<OAuth2UserRequest, org.springframework.http.RequestEntity<?>> requestEntityConverter) Sets theConverter
used for converting theOAuth2UserRequest
to aRequestEntity
representation of the UserInfo Request.final void
setRestOperations
(org.springframework.web.client.RestOperations restOperations) Sets theRestOperations
used when requesting the UserInfo resource.
-
Constructor Details
-
DefaultOAuth2UserService
public DefaultOAuth2UserService()
-
-
Method Details
-
loadUser
Description copied from interface:OAuth2UserService
Returns anOAuth2User
after obtaining the user attributes of the End-User from the UserInfo Endpoint.- Specified by:
loadUser
in interfaceOAuth2UserService<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
-
setAttributesConverter
public 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
-
setRequestEntityConverter
public final void setRequestEntityConverter(org.springframework.core.convert.converter.Converter<OAuth2UserRequest, org.springframework.http.RequestEntity<?>> requestEntityConverter) Sets theConverter
used for converting theOAuth2UserRequest
to aRequestEntity
representation of the UserInfo Request.- Parameters:
requestEntityConverter
- theConverter
used for converting to aRequestEntity
representation of the UserInfo Request- Since:
- 5.1
-
setRestOperations
public final void setRestOperations(org.springframework.web.client.RestOperations restOperations) Sets theRestOperations
used when requesting the UserInfo resource.NOTE: At a minimum, the supplied
restOperations
must be configured with the following:ResponseErrorHandler
-OAuth2ErrorResponseErrorHandler
- Parameters:
restOperations
- theRestOperations
used when requesting the UserInfo resource- Since:
- 5.1
-