From d9584384c441c3964fc6952f009c712ec823bb4b Mon Sep 17 00:00:00 2001 From: Rob Winch Date: Sun, 29 Oct 2017 20:40:52 -0500 Subject: [PATCH] Move collectClaims to OidcUserAuthority Fixes gh-4749 --- .../oauth2/core/oidc/user/DefaultOidcUser.java | 2 +- .../security/oauth2/core/oidc/user/OidcUser.java | 10 ---------- .../oauth2/core/oidc/user/OidcUserAuthority.java | 16 +++++++++++++++- 3 files changed, 16 insertions(+), 12 deletions(-) diff --git a/oauth2/oauth2-core/src/main/java/org/springframework/security/oauth2/core/oidc/user/DefaultOidcUser.java b/oauth2/oauth2-core/src/main/java/org/springframework/security/oauth2/core/oidc/user/DefaultOidcUser.java index ef20ba1aaa..6543ae6ff0 100644 --- a/oauth2/oauth2-core/src/main/java/org/springframework/security/oauth2/core/oidc/user/DefaultOidcUser.java +++ b/oauth2/oauth2-core/src/main/java/org/springframework/security/oauth2/core/oidc/user/DefaultOidcUser.java @@ -59,7 +59,7 @@ public class DefaultOidcUser extends DefaultOAuth2User implements OidcUser { public DefaultOidcUser(Set authorities, OidcIdToken idToken, OidcUserInfo userInfo, String nameAttributeKey) { - super(authorities, OidcUser.collectClaims(idToken, userInfo), nameAttributeKey); + super(authorities, OidcUserAuthority.collectClaims(idToken, userInfo), nameAttributeKey); this.idToken = idToken; this.userInfo = userInfo; } diff --git a/oauth2/oauth2-core/src/main/java/org/springframework/security/oauth2/core/oidc/user/OidcUser.java b/oauth2/oauth2-core/src/main/java/org/springframework/security/oauth2/core/oidc/user/OidcUser.java index 6984958395..acf7cf375e 100644 --- a/oauth2/oauth2-core/src/main/java/org/springframework/security/oauth2/core/oidc/user/OidcUser.java +++ b/oauth2/oauth2-core/src/main/java/org/springframework/security/oauth2/core/oidc/user/OidcUser.java @@ -55,16 +55,6 @@ public interface OidcUser extends OAuth2User, IdTokenClaimAccessor { Map getClaims(); - static Map collectClaims(OidcIdToken idToken, OidcUserInfo userInfo) { - Assert.notNull(idToken, "idToken cannot be null"); - Map claims = new HashMap<>(); - if (userInfo != null) { - claims.putAll(userInfo.getClaims()); - } - claims.putAll(idToken.getClaims()); - return claims; - } - OidcUserInfo getUserInfo(); OidcIdToken getIdToken(); diff --git a/oauth2/oauth2-core/src/main/java/org/springframework/security/oauth2/core/oidc/user/OidcUserAuthority.java b/oauth2/oauth2-core/src/main/java/org/springframework/security/oauth2/core/oidc/user/OidcUserAuthority.java index 1d63978545..1ce1d56652 100644 --- a/oauth2/oauth2-core/src/main/java/org/springframework/security/oauth2/core/oidc/user/OidcUserAuthority.java +++ b/oauth2/oauth2-core/src/main/java/org/springframework/security/oauth2/core/oidc/user/OidcUserAuthority.java @@ -19,6 +19,10 @@ import org.springframework.security.core.GrantedAuthority; import org.springframework.security.oauth2.core.oidc.OidcUserInfo; import org.springframework.security.oauth2.core.user.OAuth2UserAuthority; import org.springframework.security.oauth2.core.oidc.OidcIdToken; +import org.springframework.util.Assert; + +import java.util.HashMap; +import java.util.Map; /** * A {@link GrantedAuthority} that is associated with an {@link OidcUser}. @@ -40,7 +44,7 @@ public class OidcUserAuthority extends OAuth2UserAuthority { } public OidcUserAuthority(String authority, OidcIdToken idToken, OidcUserInfo userInfo) { - super(authority, OidcUser.collectClaims(idToken, userInfo)); + super(authority, collectClaims(idToken, userInfo)); this.idToken = idToken; this.userInfo = userInfo; } @@ -82,4 +86,14 @@ public class OidcUserAuthority extends OAuth2UserAuthority { result = 31 * result + (this.getUserInfo() != null ? this.getUserInfo().hashCode() : 0); return result; } + + static Map collectClaims(OidcIdToken idToken, OidcUserInfo userInfo) { + Assert.notNull(idToken, "idToken cannot be null"); + Map claims = new HashMap<>(); + if (userInfo != null) { + claims.putAll(userInfo.getClaims()); + } + claims.putAll(idToken.getClaims()); + return claims; + } }