Ensure consistency by using Collection<GrantedAuthority> type

Fixes gh-5143
This commit is contained in:
Joe Grandja 2018-03-21 10:34:45 -04:00
parent 90f9d728cd
commit bb15213091
2 changed files with 10 additions and 10 deletions

View File

@ -1,5 +1,5 @@
/* /*
* Copyright 2002-2017 the original author or authors. * Copyright 2002-2018 the original author or authors.
* *
* Licensed under the Apache License, Version 2.0 (the "License"); * Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License. * you may not use this file except in compliance with the License.
@ -22,8 +22,8 @@ import org.springframework.security.oauth2.core.oidc.OidcIdToken;
import org.springframework.security.oauth2.core.oidc.OidcUserInfo; import org.springframework.security.oauth2.core.oidc.OidcUserInfo;
import org.springframework.security.oauth2.core.user.DefaultOAuth2User; import org.springframework.security.oauth2.core.user.DefaultOAuth2User;
import java.util.Collection;
import java.util.Map; import java.util.Map;
import java.util.Set;
/** /**
* The default implementation of an {@link OidcUser}. * The default implementation of an {@link OidcUser}.
@ -50,7 +50,7 @@ public class DefaultOidcUser extends DefaultOAuth2User implements OidcUser {
* @param authorities the authorities granted to the user * @param authorities the authorities granted to the user
* @param idToken the {@link OidcIdToken ID Token} containing claims about the user * @param idToken the {@link OidcIdToken ID Token} containing claims about the user
*/ */
public DefaultOidcUser(Set<GrantedAuthority> authorities, OidcIdToken idToken) { public DefaultOidcUser(Collection<? extends GrantedAuthority> authorities, OidcIdToken idToken) {
this(authorities, idToken, IdTokenClaimNames.SUB); this(authorities, idToken, IdTokenClaimNames.SUB);
} }
@ -61,7 +61,7 @@ public class DefaultOidcUser extends DefaultOAuth2User implements OidcUser {
* @param idToken the {@link OidcIdToken ID Token} containing claims about the user * @param idToken the {@link OidcIdToken ID Token} containing claims about the user
* @param nameAttributeKey the key used to access the user's &quot;name&quot; from {@link #getAttributes()} * @param nameAttributeKey the key used to access the user's &quot;name&quot; from {@link #getAttributes()}
*/ */
public DefaultOidcUser(Set<GrantedAuthority> authorities, OidcIdToken idToken, String nameAttributeKey) { public DefaultOidcUser(Collection<? extends GrantedAuthority> authorities, OidcIdToken idToken, String nameAttributeKey) {
this(authorities, idToken, null, nameAttributeKey); this(authorities, idToken, null, nameAttributeKey);
} }
@ -72,7 +72,7 @@ public class DefaultOidcUser extends DefaultOAuth2User implements OidcUser {
* @param idToken the {@link OidcIdToken ID Token} containing claims about the user * @param idToken the {@link OidcIdToken ID Token} containing claims about the user
* @param userInfo the {@link OidcUserInfo UserInfo} containing claims about the user, may be {@code null} * @param userInfo the {@link OidcUserInfo UserInfo} containing claims about the user, may be {@code null}
*/ */
public DefaultOidcUser(Set<GrantedAuthority> authorities, OidcIdToken idToken, OidcUserInfo userInfo) { public DefaultOidcUser(Collection<? extends GrantedAuthority> authorities, OidcIdToken idToken, OidcUserInfo userInfo) {
this(authorities, idToken, userInfo, IdTokenClaimNames.SUB); this(authorities, idToken, userInfo, IdTokenClaimNames.SUB);
} }
@ -84,8 +84,8 @@ public class DefaultOidcUser extends DefaultOAuth2User implements OidcUser {
* @param userInfo the {@link OidcUserInfo UserInfo} containing claims about the user, may be {@code null} * @param userInfo the {@link OidcUserInfo UserInfo} containing claims about the user, may be {@code null}
* @param nameAttributeKey the key used to access the user's &quot;name&quot; from {@link #getAttributes()} * @param nameAttributeKey the key used to access the user's &quot;name&quot; from {@link #getAttributes()}
*/ */
public DefaultOidcUser(Set<GrantedAuthority> authorities, OidcIdToken idToken, OidcUserInfo userInfo, public DefaultOidcUser(Collection<? extends GrantedAuthority> authorities, OidcIdToken idToken,
String nameAttributeKey) { OidcUserInfo userInfo, String nameAttributeKey) {
super(authorities, OidcUserAuthority.collectClaims(idToken, userInfo), nameAttributeKey); super(authorities, OidcUserAuthority.collectClaims(idToken, userInfo), nameAttributeKey);
this.idToken = idToken; this.idToken = idToken;
this.userInfo = userInfo; this.userInfo = userInfo;

View File

@ -1,5 +1,5 @@
/* /*
* Copyright 2002-2017 the original author or authors. * Copyright 2002-2018 the original author or authors.
* *
* Licensed under the Apache License, Version 2.0 (the "License"); * Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License. * you may not use this file except in compliance with the License.
@ -59,7 +59,7 @@ public class DefaultOAuth2User implements OAuth2User, Serializable {
* @param attributes the attributes about the user * @param attributes the attributes about the user
* @param nameAttributeKey the key used to access the user's &quot;name&quot; from {@link #getAttributes()} * @param nameAttributeKey the key used to access the user's &quot;name&quot; from {@link #getAttributes()}
*/ */
public DefaultOAuth2User(Set<GrantedAuthority> authorities, Map<String, Object> attributes, String nameAttributeKey) { public DefaultOAuth2User(Collection<? extends GrantedAuthority> authorities, Map<String, Object> attributes, String nameAttributeKey) {
Assert.notEmpty(authorities, "authorities cannot be empty"); Assert.notEmpty(authorities, "authorities cannot be empty");
Assert.notEmpty(attributes, "attributes cannot be empty"); Assert.notEmpty(attributes, "attributes cannot be empty");
Assert.hasText(nameAttributeKey, "nameAttributeKey cannot be empty"); Assert.hasText(nameAttributeKey, "nameAttributeKey cannot be empty");
@ -86,7 +86,7 @@ public class DefaultOAuth2User implements OAuth2User, Serializable {
return this.attributes; return this.attributes;
} }
private Set<GrantedAuthority> sortAuthorities(Set<GrantedAuthority> authorities) { private Set<GrantedAuthority> sortAuthorities(Collection<? extends GrantedAuthority> authorities) {
SortedSet<GrantedAuthority> sortedAuthorities = SortedSet<GrantedAuthority> sortedAuthorities =
new TreeSet<>(Comparator.comparing(GrantedAuthority::getAuthority)); new TreeSet<>(Comparator.comparing(GrantedAuthority::getAuthority));
sortedAuthorities.addAll(authorities); sortedAuthorities.addAll(authorities);