Skip to content

Commit c901034

Browse files
committed
Add TestingAuthenticationToken(principal,credential,grantedAuthorities...)
Closes gh-17980
1 parent 681e166 commit c901034

File tree

3 files changed

+25
-0
lines changed

3 files changed

+25
-0
lines changed

core/src/main/java/org/springframework/security/authentication/TestingAuthenticationToken.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616

1717
package org.springframework.security.authentication;
1818

19+
import java.util.Arrays;
1920
import java.util.Collection;
2021
import java.util.List;
2122

@@ -51,6 +52,10 @@ public TestingAuthenticationToken(Object principal, Object credentials, String..
5152
this(principal, credentials, AuthorityUtils.createAuthorityList(authorities));
5253
}
5354

55+
public TestingAuthenticationToken(Object principal, Object credentials, GrantedAuthority... authorities) {
56+
this(principal, credentials, Arrays.asList(authorities));
57+
}
58+
5459
public TestingAuthenticationToken(Object principal, Object credentials,
5560
List<? extends GrantedAuthority> authorities) {
5661
this(principal, credentials, (Collection<? extends GrantedAuthority>) authorities);

core/src/main/java/org/springframework/security/core/authority/AuthorityUtils.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -72,6 +72,7 @@ public static Set<String> authorityListToSet(Collection<? extends GrantedAuthori
7272
* @return a List of GrantedAuthority objects
7373
*/
7474
public static List<GrantedAuthority> createAuthorityList(String... authorities) {
75+
Assert.notNull(authorities, "authorities cannot be null");
7576
List<GrantedAuthority> grantedAuthorities = new ArrayList<>(authorities.length);
7677
for (String authority : authorities) {
7778
grantedAuthorities.add(new SimpleGrantedAuthority(authority));

core/src/test/java/org/springframework/security/authentication/TestingAuthenticationTokenTests.java

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,10 +21,13 @@
2121

2222
import org.junit.jupiter.api.Test;
2323

24+
import org.springframework.security.core.Authentication;
25+
import org.springframework.security.core.GrantedAuthority;
2426
import org.springframework.security.core.authority.AuthorityUtils;
2527
import org.springframework.security.core.authority.SimpleGrantedAuthority;
2628

2729
import static org.assertj.core.api.Assertions.assertThat;
30+
import static org.assertj.core.api.Assertions.assertThatIllegalArgumentException;
2831

2932
/**
3033
* @author Josh Cummings
@@ -68,4 +71,20 @@ public void toBuilderWhenApplyThenCopies() {
6871
assertThat(authorities).containsExactlyInAnyOrder("FACTOR_ONE", "FACTOR_TWO");
6972
}
7073

74+
@Test
75+
void constructorObjectObjectStringVargsWhenNullAuthorities() {
76+
String[] authorities = null;
77+
assertThatIllegalArgumentException()
78+
.isThrownBy(() -> new TestingAuthenticationToken("user", "password", authorities));
79+
}
80+
81+
@Test
82+
void constructorObjectObjectStringVargsWhenValid() {
83+
Authentication auth = new TestingAuthenticationToken("user", "password", "ROLE_USER");
84+
assertThat(auth.isAuthenticated()).isTrue();
85+
assertThat(auth.getPrincipal()).isEqualTo("user");
86+
assertThat(auth.getCredentials()).isEqualTo("password");
87+
assertThat(auth.getAuthorities()).extracting(GrantedAuthority::getAuthority).containsOnly("ROLE_USER");
88+
}
89+
7190
}

0 commit comments

Comments
 (0)