|
|
|
|
@ -22,10 +22,15 @@ import org.junit.Test;
@@ -22,10 +22,15 @@ import org.junit.Test;
|
|
|
|
|
import org.springframework.security.acls.domain.GrantedAuthoritySid; |
|
|
|
|
import org.springframework.security.acls.domain.PrincipalSid; |
|
|
|
|
import org.springframework.security.acls.model.Sid; |
|
|
|
|
import org.springframework.security.authentication.AbstractAuthenticationToken; |
|
|
|
|
import org.springframework.security.authentication.TestingAuthenticationToken; |
|
|
|
|
import org.springframework.security.core.Authentication; |
|
|
|
|
import org.springframework.security.core.GrantedAuthority; |
|
|
|
|
import org.springframework.security.core.authority.SimpleGrantedAuthority; |
|
|
|
|
import org.springframework.security.core.userdetails.User; |
|
|
|
|
|
|
|
|
|
import java.util.Collection; |
|
|
|
|
import java.util.Collections; |
|
|
|
|
|
|
|
|
|
public class SidTests { |
|
|
|
|
|
|
|
|
|
@ -211,4 +216,65 @@ public class SidTests {
@@ -211,4 +216,65 @@ public class SidTests {
|
|
|
|
|
assertThat("ROLE_TEST".equals(gaSid.getGrantedAuthority())).isTrue(); |
|
|
|
|
assertThat("ROLE_TEST2".equals(gaSid.getGrantedAuthority())).isFalse(); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
@Test |
|
|
|
|
public void getPrincipalWhenPrincipalInstanceOfUserDetailsThenReturnsUsername() { |
|
|
|
|
User user = new User("user", "password", Collections.singletonList(new SimpleGrantedAuthority("ROLE_TEST"))); |
|
|
|
|
Authentication authentication = new TestingAuthenticationToken(user, "password"); |
|
|
|
|
PrincipalSid principalSid = new PrincipalSid(authentication); |
|
|
|
|
|
|
|
|
|
assertThat("user").isEqualTo(principalSid.getPrincipal()); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
@Test |
|
|
|
|
public void getPrincipalWhenPrincipalNotInstanceOfUserDetailsThenReturnsPrincipalName() { |
|
|
|
|
Authentication authentication = new TestingAuthenticationToken("token", "password"); |
|
|
|
|
PrincipalSid principalSid = new PrincipalSid(authentication); |
|
|
|
|
|
|
|
|
|
assertThat("token").isEqualTo(principalSid.getPrincipal()); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
@Test |
|
|
|
|
public void getPrincipalWhenCustomAuthenticationPrincipalThenReturnsPrincipalName() { |
|
|
|
|
Authentication authentication = new CustomAuthenticationToken(new CustomToken("token"), null); |
|
|
|
|
PrincipalSid principalSid = new PrincipalSid(authentication); |
|
|
|
|
|
|
|
|
|
assertThat("token").isEqualTo(principalSid.getPrincipal()); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
static class CustomAuthenticationToken extends AbstractAuthenticationToken { |
|
|
|
|
private CustomToken principal; |
|
|
|
|
|
|
|
|
|
CustomAuthenticationToken(CustomToken principal, Collection<GrantedAuthority> authorities) { |
|
|
|
|
super(authorities); |
|
|
|
|
this.principal = principal; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
@Override |
|
|
|
|
public Object getCredentials() { |
|
|
|
|
return null; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
@Override |
|
|
|
|
public CustomToken getPrincipal() { |
|
|
|
|
return this.principal; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
@Override |
|
|
|
|
public String getName() { |
|
|
|
|
return principal.getName(); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
static class CustomToken { |
|
|
|
|
private String name; |
|
|
|
|
|
|
|
|
|
CustomToken(String name) { |
|
|
|
|
this.name = name; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
String getName() { |
|
|
|
|
return name; |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|