@ -33,6 +33,7 @@ import org.springframework.util.CollectionUtils;
@@ -33,6 +33,7 @@ import org.springframework.util.CollectionUtils;
import org.springframework.util.StringUtils ;
import java.util.Arrays ;
import java.util.Collections ;
import java.util.HashSet ;
import java.util.Set ;
@ -51,14 +52,14 @@ public class OidcUserService implements OAuth2UserService<OidcUserRequest, OidcU
@@ -51,14 +52,14 @@ public class OidcUserService implements OAuth2UserService<OidcUserRequest, OidcU
private static final String INVALID_USER_INFO_RESPONSE_ERROR_CODE = "invalid_user_info_response" ;
private final Set < String > userInfoScopes = new HashSet < > (
Arrays . asList ( OidcScopes . PROFILE , OidcScopes . EMAIL , OidcScopes . ADDRESS , OidcScopes . PHONE ) ) ;
private final OAuth2UserService < OAuth2UserRequest , OAuth2User > default UserService = new DefaultOAuth2UserService ( ) ;
private OAuth2UserService < OAuth2UserRequest , OAuth2User > oauth2 UserService = new DefaultOAuth2UserService ( ) ;
@Override
public OidcUser loadUser ( OidcUserRequest userRequest ) throws OAuth2AuthenticationException {
Assert . notNull ( userRequest , "userRequest cannot be null" ) ;
OidcUserInfo userInfo = null ;
if ( this . shouldRetrieveUserInfo ( userRequest ) ) {
OAuth2User oauth2User = this . default UserService. loadUser ( userRequest ) ;
OAuth2User oauth2User = this . oauth2 UserService. loadUser ( userRequest ) ;
userInfo = new OidcUserInfo ( oauth2User . getAttributes ( ) ) ;
// http://openid.net/specs/openid-connect-core-1_0.html#UserInfoResponse
@ -81,9 +82,8 @@ public class OidcUserService implements OAuth2UserService<OidcUserRequest, OidcU
@@ -81,9 +82,8 @@ public class OidcUserService implements OAuth2UserService<OidcUserRequest, OidcU
}
}
GrantedAuthority authority = new OidcUserAuthority ( userRequest . getIdToken ( ) , userInfo ) ;
Set < GrantedAuthority > authorities = new HashSet < > ( ) ;
authorities . add ( authority ) ;
Set < GrantedAuthority > authorities = Collections . singleton (
new OidcUserAuthority ( userRequest . getIdToken ( ) , userInfo ) ) ;
OidcUser user ;
@ -121,4 +121,15 @@ public class OidcUserService implements OAuth2UserService<OidcUserRequest, OidcU
@@ -121,4 +121,15 @@ public class OidcUserService implements OAuth2UserService<OidcUserRequest, OidcU
return false ;
}
/ * *
* Sets the { @link OAuth2UserService } used when requesting the user info resource .
*
* @since 5 . 1
* @param oauth2UserService the { @link OAuth2UserService } used when requesting the user info resource .
* /
public final void setOauth2UserService ( OAuth2UserService < OAuth2UserRequest , OAuth2User > oauth2UserService ) {
Assert . notNull ( oauth2UserService , "oauth2UserService cannot be null" ) ;
this . oauth2UserService = oauth2UserService ;
}
}