Browse Source

DefaultOAuth2User is Serializable

Fixes gh-4917
pull/4918/head
Joe Grandja 8 years ago
parent
commit
268a1dc06e
  1. 3
      oauth2/oauth2-core/src/main/java/org/springframework/security/oauth2/core/user/DefaultOAuth2User.java
  2. 8
      oauth2/oauth2-core/src/test/java/org/springframework/security/oauth2/core/user/DefaultOAuth2UserTests.java

3
oauth2/oauth2-core/src/main/java/org/springframework/security/oauth2/core/user/DefaultOAuth2User.java

@ -24,6 +24,7 @@ import java.util.Collection;
import java.util.Collections; import java.util.Collections;
import java.util.Comparator; import java.util.Comparator;
import java.util.LinkedHashMap; import java.util.LinkedHashMap;
import java.util.LinkedHashSet;
import java.util.Map; import java.util.Map;
import java.util.Set; import java.util.Set;
import java.util.SortedSet; import java.util.SortedSet;
@ -58,7 +59,7 @@ public class DefaultOAuth2User implements OAuth2User, Serializable {
if (!attributes.containsKey(nameAttributeKey)) { if (!attributes.containsKey(nameAttributeKey)) {
throw new IllegalArgumentException("Missing attribute '" + nameAttributeKey + "' in attributes"); throw new IllegalArgumentException("Missing attribute '" + nameAttributeKey + "' in attributes");
} }
this.authorities = Collections.unmodifiableSet(this.sortAuthorities(authorities)); this.authorities = Collections.unmodifiableSet(new LinkedHashSet<>(this.sortAuthorities(authorities)));
this.attributes = Collections.unmodifiableMap(new LinkedHashMap<>(attributes)); this.attributes = Collections.unmodifiableMap(new LinkedHashMap<>(attributes));
this.nameAttributeKey = nameAttributeKey; this.nameAttributeKey = nameAttributeKey;
} }

8
oauth2/oauth2-core/src/test/java/org/springframework/security/oauth2/core/user/DefaultOAuth2UserTests.java

@ -19,6 +19,7 @@ package org.springframework.security.oauth2.core.user;
import org.junit.Test; import org.junit.Test;
import org.springframework.security.core.GrantedAuthority; import org.springframework.security.core.GrantedAuthority;
import org.springframework.security.core.authority.SimpleGrantedAuthority; import org.springframework.security.core.authority.SimpleGrantedAuthority;
import org.springframework.util.SerializationUtils;
import java.util.Collections; import java.util.Collections;
import java.util.Map; import java.util.Map;
@ -79,4 +80,11 @@ public class DefaultOAuth2UserTests {
assertThat(user.getAuthorities().iterator().next()).isEqualTo(AUTHORITY); assertThat(user.getAuthorities().iterator().next()).isEqualTo(AUTHORITY);
assertThat(user.getAttributes()).containsOnlyKeys(ATTRIBUTE_NAME_KEY); assertThat(user.getAttributes()).containsOnlyKeys(ATTRIBUTE_NAME_KEY);
} }
// gh-4917
@Test
public void constructorWhenCreatedThenIsSerializable() {
DefaultOAuth2User user = new DefaultOAuth2User(AUTHORITIES, ATTRIBUTES, ATTRIBUTE_NAME_KEY);
SerializationUtils.serialize(user);
}
} }

Loading…
Cancel
Save