Browse Source

Polish CAS Authentication Builder

Issue gh-17861
pull/17790/head
Josh Cummings 3 months ago
parent
commit
18fbf88993
  1. 22
      cas/src/main/java/org/springframework/security/cas/authentication/CasAuthenticationToken.java
  2. 3
      cas/src/main/java/org/springframework/security/cas/authentication/CasServiceTicketAuthenticationToken.java
  3. 2
      cas/src/test/java/org/springframework/security/cas/authentication/CasAuthenticationTokenTests.java

22
cas/src/main/java/org/springframework/security/cas/authentication/CasAuthenticationToken.java

@ -23,7 +23,6 @@ import org.apereo.cas.client.validation.Assertion; @@ -23,7 +23,6 @@ import org.apereo.cas.client.validation.Assertion;
import org.jspecify.annotations.Nullable;
import org.springframework.security.authentication.AbstractAuthenticationToken;
import org.springframework.security.core.Authentication;
import org.springframework.security.core.GrantedAuthority;
import org.springframework.security.core.userdetails.UserDetails;
import org.springframework.util.Assert;
@ -183,7 +182,7 @@ public class CasAuthenticationToken extends AbstractAuthenticationToken implemen @@ -183,7 +182,7 @@ public class CasAuthenticationToken extends AbstractAuthenticationToken implemen
}
/**
* A builder preserving the concrete {@link Authentication} type
* A builder of {@link CasAuthenticationToken} instances
*
* @since 7.0
*/
@ -208,8 +207,13 @@ public class CasAuthenticationToken extends AbstractAuthenticationToken implemen @@ -208,8 +207,13 @@ public class CasAuthenticationToken extends AbstractAuthenticationToken implemen
this.assertion = token.assertion;
}
public B keyHash(Integer keyHash) {
this.keyHash = keyHash;
/**
* Use this key
* @param key the key to use
* @return the {@link Builder} for further configurations
*/
public B key(String key) {
this.keyHash = key.hashCode();
return (B) this;
}
@ -227,11 +231,21 @@ public class CasAuthenticationToken extends AbstractAuthenticationToken implemen @@ -227,11 +231,21 @@ public class CasAuthenticationToken extends AbstractAuthenticationToken implemen
return (B) this;
}
/**
* Use this {@link UserDetails}
* @param userDetails the {@link UserDetails} to use
* @return the {@link Builder} for further configurations
*/
public B userDetails(UserDetails userDetails) {
this.userDetails = userDetails;
return (B) this;
}
/**
* Use this {@link Assertion}
* @param assertion the {@link Assertion} to use
* @return the {@link Builder} for further configurations
*/
public B assertion(Assertion assertion) {
this.assertion = assertion;
return (B) this;

3
cas/src/main/java/org/springframework/security/cas/authentication/CasServiceTicketAuthenticationToken.java

@ -22,7 +22,6 @@ import java.util.Collection; @@ -22,7 +22,6 @@ import java.util.Collection;
import org.jspecify.annotations.Nullable;
import org.springframework.security.authentication.AbstractAuthenticationToken;
import org.springframework.security.core.Authentication;
import org.springframework.security.core.GrantedAuthority;
import org.springframework.util.Assert;
@ -122,7 +121,7 @@ public class CasServiceTicketAuthenticationToken extends AbstractAuthenticationT @@ -122,7 +121,7 @@ public class CasServiceTicketAuthenticationToken extends AbstractAuthenticationT
}
/**
* A builder preserving the concrete {@link Authentication} type
* A builder of {@link CasServiceTicketAuthenticationToken} instances
*
* @since 7.0
*/

2
cas/src/test/java/org/springframework/security/cas/authentication/CasAuthenticationTokenTests.java

@ -167,7 +167,7 @@ public class CasAuthenticationTokenTests { @@ -167,7 +167,7 @@ public class CasAuthenticationTokenTests {
AuthorityUtils.createAuthorityList("FACTOR_TWO"), PasswordEncodedUser.admin(), assertionTwo);
CasAuthenticationToken authentication = factorOne.toBuilder()
.authorities((a) -> a.addAll(factorTwo.getAuthorities()))
.keyHash(factorTwo.getKeyHash())
.key("yek")
.principal(factorTwo.getPrincipal())
.credentials(factorTwo.getCredentials())
.userDetails(factorTwo.getUserDetails())

Loading…
Cancel
Save