Add TestingAuthenticationToken(principal,credential,grantedAuthorities...)

Closes gh-17980
This commit is contained in:
Rob Winch 2025-09-30 13:53:22 -05:00
parent 681e166be8
commit c9010345b9
No known key found for this signature in database
3 changed files with 25 additions and 0 deletions

View File

@ -16,6 +16,7 @@
package org.springframework.security.authentication;
import java.util.Arrays;
import java.util.Collection;
import java.util.List;
@ -51,6 +52,10 @@ public class TestingAuthenticationToken extends AbstractAuthenticationToken {
this(principal, credentials, AuthorityUtils.createAuthorityList(authorities));
}
public TestingAuthenticationToken(Object principal, Object credentials, GrantedAuthority... authorities) {
this(principal, credentials, Arrays.asList(authorities));
}
public TestingAuthenticationToken(Object principal, Object credentials,
List<? extends GrantedAuthority> authorities) {
this(principal, credentials, (Collection<? extends GrantedAuthority>) authorities);

View File

@ -72,6 +72,7 @@ public final class AuthorityUtils {
* @return a List of GrantedAuthority objects
*/
public static List<GrantedAuthority> createAuthorityList(String... authorities) {
Assert.notNull(authorities, "authorities cannot be null");
List<GrantedAuthority> grantedAuthorities = new ArrayList<>(authorities.length);
for (String authority : authorities) {
grantedAuthorities.add(new SimpleGrantedAuthority(authority));

View File

@ -21,10 +21,13 @@ import java.util.Set;
import org.junit.jupiter.api.Test;
import org.springframework.security.core.Authentication;
import org.springframework.security.core.GrantedAuthority;
import org.springframework.security.core.authority.AuthorityUtils;
import org.springframework.security.core.authority.SimpleGrantedAuthority;
import static org.assertj.core.api.Assertions.assertThat;
import static org.assertj.core.api.Assertions.assertThatIllegalArgumentException;
/**
* @author Josh Cummings
@ -68,4 +71,20 @@ public class TestingAuthenticationTokenTests {
assertThat(authorities).containsExactlyInAnyOrder("FACTOR_ONE", "FACTOR_TWO");
}
@Test
void constructorObjectObjectStringVargsWhenNullAuthorities() {
String[] authorities = null;
assertThatIllegalArgumentException()
.isThrownBy(() -> new TestingAuthenticationToken("user", "password", authorities));
}
@Test
void constructorObjectObjectStringVargsWhenValid() {
Authentication auth = new TestingAuthenticationToken("user", "password", "ROLE_USER");
assertThat(auth.isAuthenticated()).isTrue();
assertThat(auth.getPrincipal()).isEqualTo("user");
assertThat(auth.getCredentials()).isEqualTo("password");
assertThat(auth.getAuthorities()).extracting(GrantedAuthority::getAuthority).containsOnly("ROLE_USER");
}
}