From 04f0f2597a3dd725426cdc0b17537a1521b2b20e Mon Sep 17 00:00:00 2001 From: ahmd-nabil Date: Tue, 23 Jan 2024 16:46:06 +0200 Subject: [PATCH] Polish DefaultOAuth2UserService Signed-off-by: ahmd-nabil --- .../userinfo/DefaultOAuth2UserService.java | 64 +++++++++++-------- 1 file changed, 37 insertions(+), 27 deletions(-) diff --git a/oauth2/oauth2-client/src/main/java/org/springframework/security/oauth2/client/userinfo/DefaultOAuth2UserService.java b/oauth2/oauth2-client/src/main/java/org/springframework/security/oauth2/client/userinfo/DefaultOAuth2UserService.java index 6aa47df24e..95336084b7 100644 --- a/oauth2/oauth2-client/src/main/java/org/springframework/security/oauth2/client/userinfo/DefaultOAuth2UserService.java +++ b/oauth2/oauth2-client/src/main/java/org/springframework/security/oauth2/client/userinfo/DefaultOAuth2UserService.java @@ -16,9 +16,9 @@ package org.springframework.security.oauth2.client.userinfo; +import java.util.Collection; import java.util.LinkedHashSet; import java.util.Map; -import java.util.Set; import org.springframework.core.ParameterizedTypeReference; import org.springframework.core.convert.converter.Converter; @@ -90,35 +90,13 @@ public class DefaultOAuth2UserService implements OAuth2UserService request = this.requestEntityConverter.convert(userRequest); ResponseEntity> response = getResponse(userRequest, request); - Map userAttributes = this.attributesConverter.convert(userRequest).convert(response.getBody()); - Set authorities = new LinkedHashSet<>(); - authorities.add(new OAuth2UserAuthority(userAttributes)); OAuth2AccessToken token = userRequest.getAccessToken(); - for (String authority : token.getScopes()) { - authorities.add(new SimpleGrantedAuthority("SCOPE_" + authority)); - } - return new DefaultOAuth2User(authorities, userAttributes, userNameAttributeName); + Map attributes = this.attributesConverter.convert(userRequest).convert(response.getBody()); + Collection authorities = getAuthorities(token, attributes); + return new DefaultOAuth2User(authorities, attributes, userNameAttributeName); } /** @@ -186,6 +164,38 @@ public class DefaultOAuth2UserService implements OAuth2UserService getAuthorities(OAuth2AccessToken token, Map attributes) { + Collection authorities = new LinkedHashSet<>(); + authorities.add(new OAuth2UserAuthority(attributes)); + for (String authority : token.getScopes()) { + authorities.add(new SimpleGrantedAuthority("SCOPE_" + authority)); + } + return authorities; + } + /** * Sets the {@link Converter} used for converting the {@link OAuth2UserRequest} to a * {@link RequestEntity} representation of the UserInfo Request.