Skip to content

Commit af3c6d4

Browse files
committed
JwtAuthenticationTokenTests Polish
Using Jwt.Builder to clean up some of this test's config. Issue: gh-6893
1 parent 936d28d commit af3c6d4

File tree

1 file changed

+19
-40
lines changed

1 file changed

+19
-40
lines changed

oauth2/oauth2-resource-server/src/test/java/org/springframework/security/oauth2/server/resource/authentication/JwtAuthenticationTokenTests.java

+19-40
Original file line numberDiff line numberDiff line change
@@ -16,24 +16,19 @@
1616

1717
package org.springframework.security.oauth2.server.resource.authentication;
1818

19-
import java.time.Instant;
20-
import java.util.Arrays;
2119
import java.util.Collection;
22-
import java.util.HashMap;
23-
import java.util.Map;
2420

25-
import org.assertj.core.util.Maps;
2621
import org.junit.Test;
2722
import org.junit.runner.RunWith;
2823
import org.mockito.junit.MockitoJUnitRunner;
2924

30-
import org.springframework.security.core.authority.SimpleGrantedAuthority;
31-
import org.springframework.security.oauth2.jose.jws.JwsAlgorithms;
25+
import org.springframework.security.core.GrantedAuthority;
26+
import org.springframework.security.core.authority.AuthorityUtils;
3227
import org.springframework.security.oauth2.jwt.Jwt;
3328

3429
import static org.assertj.core.api.Assertions.assertThat;
3530
import static org.assertj.core.api.Assertions.assertThatCode;
36-
import static org.springframework.security.oauth2.jwt.JwtClaimNames.SUB;
31+
import static org.springframework.security.oauth2.jose.jws.JwsAlgorithms.RS256;
3732

3833
/**
3934
* Tests for {@link JwtAuthenticationToken}
@@ -45,17 +40,15 @@ public class JwtAuthenticationTokenTests {
4540

4641
@Test
4742
public void getNameWhenJwtHasSubjectThenReturnsSubject() {
48-
Jwt jwt = this.jwt(Maps.newHashMap("sub", "Carl"));
49-
43+
Jwt jwt = builder().subject("Carl").build();
5044
JwtAuthenticationToken token = new JwtAuthenticationToken(jwt);
5145

5246
assertThat(token.getName()).isEqualTo("Carl");
5347
}
5448

5549
@Test
5650
public void getNameWhenJwtHasNoSubjectThenReturnsNull() {
57-
Jwt jwt = this.jwt(Maps.newHashMap("claim", "value"));
58-
51+
Jwt jwt = builder().claim("claim", "value").build();
5952
JwtAuthenticationToken token = new JwtAuthenticationToken(jwt);
6053

6154
assertThat(token.getName()).isNull();
@@ -70,82 +63,68 @@ public void constructorWhenJwtIsNullThenThrowsException() {
7063

7164
@Test
7265
public void constructorWhenUsingCorrectParametersThenConstructedCorrectly() {
73-
Collection authorities = Arrays.asList(new SimpleGrantedAuthority("test"));
74-
Map claims = Maps.newHashMap("claim", "value");
75-
Jwt jwt = this.jwt(claims);
76-
66+
Collection<GrantedAuthority> authorities = AuthorityUtils.createAuthorityList("test");
67+
Jwt jwt = builder().claim("claim", "value").build();
7768
JwtAuthenticationToken token = new JwtAuthenticationToken(jwt, authorities);
7869

7970
assertThat(token.getAuthorities()).isEqualTo(authorities);
8071
assertThat(token.getPrincipal()).isEqualTo(jwt);
8172
assertThat(token.getCredentials()).isEqualTo(jwt);
8273
assertThat(token.getToken()).isEqualTo(jwt);
83-
assertThat(token.getTokenAttributes()).isEqualTo(claims);
74+
assertThat(token.getTokenAttributes()).isEqualTo(jwt.getClaims());
8475
assertThat(token.isAuthenticated()).isTrue();
8576
}
8677

8778
@Test
8879
public void constructorWhenUsingOnlyJwtThenConstructedCorrectly() {
89-
Map claims = Maps.newHashMap("claim", "value");
90-
Jwt jwt = this.jwt(claims);
91-
80+
Jwt jwt = builder().claim("claim", "value").build();
9281
JwtAuthenticationToken token = new JwtAuthenticationToken(jwt);
9382

9483
assertThat(token.getAuthorities()).isEmpty();
9584
assertThat(token.getPrincipal()).isEqualTo(jwt);
9685
assertThat(token.getCredentials()).isEqualTo(jwt);
9786
assertThat(token.getToken()).isEqualTo(jwt);
98-
assertThat(token.getTokenAttributes()).isEqualTo(claims);
87+
assertThat(token.getTokenAttributes()).isEqualTo(jwt.getClaims());
9988
assertThat(token.isAuthenticated()).isFalse();
10089
}
10190

10291
@Test
10392
public void getNameWhenConstructedWithJwtThenReturnsSubject() {
104-
Map claims = Maps.newHashMap(SUB, "Hayden");
105-
Jwt jwt = this.jwt(claims);
106-
93+
Jwt jwt = builder().subject("Hayden").build();
10794
JwtAuthenticationToken token = new JwtAuthenticationToken(jwt);
10895

10996
assertThat(token.getName()).isEqualTo("Hayden");
11097
}
11198

11299
@Test
113100
public void getNameWhenConstructedWithJwtAndAuthoritiesThenReturnsSubject() {
114-
Collection authorities = Arrays.asList(new SimpleGrantedAuthority("test"));
115-
Map claims = Maps.newHashMap(SUB, "Hayden");
116-
Jwt jwt = this.jwt(claims);
117-
101+
Collection<GrantedAuthority> authorities = AuthorityUtils.createAuthorityList("test");
102+
Jwt jwt = builder().subject("Hayden").build();
118103
JwtAuthenticationToken token = new JwtAuthenticationToken(jwt, authorities);
119104

120105
assertThat(token.getName()).isEqualTo("Hayden");
121106
}
122107

123108
@Test
124109
public void getNameWhenConstructedWithNameThenReturnsProvidedName() {
125-
Collection authorities = Arrays.asList(new SimpleGrantedAuthority("test"));
126-
Map claims = Maps.newHashMap("claim", "value");
127-
Jwt jwt = this.jwt(claims);
128-
110+
Collection<GrantedAuthority> authorities = AuthorityUtils.createAuthorityList("test");
111+
Jwt jwt = builder().claim("claim", "value").build();
129112
JwtAuthenticationToken token = new JwtAuthenticationToken(jwt, authorities, "Hayden");
130113

131114
assertThat(token.getName()).isEqualTo("Hayden");
132115
}
133116

134117
@Test
135118
public void getNameWhenConstructedWithNoSubjectThenReturnsNull() {
136-
Collection authorities = Arrays.asList(new SimpleGrantedAuthority("test"));
137-
Map claims = Maps.newHashMap("claim", "value");
138-
Jwt jwt = this.jwt(claims);
119+
Collection<GrantedAuthority> authorities = AuthorityUtils.createAuthorityList("test");
120+
Jwt jwt = builder().claim("claim", "value").build();
139121

140122
assertThat(new JwtAuthenticationToken(jwt, authorities, null).getName()).isNull();
141123
assertThat(new JwtAuthenticationToken(jwt, authorities).getName()).isNull();
142124
assertThat(new JwtAuthenticationToken(jwt).getName()).isNull();
143125
}
144126

145-
private Jwt jwt(Map<String, Object> claims) {
146-
Map<String, Object> headers = new HashMap<>();
147-
headers.put("alg", JwsAlgorithms.RS256);
148-
149-
return new Jwt("token", Instant.now(), Instant.now().plusSeconds(3600), headers, claims);
127+
private Jwt.Builder builder() {
128+
return Jwt.withTokenValue("token").header("alg", RS256);
150129
}
151130
}

0 commit comments

Comments
 (0)