package org.apereo.cas.adaptors.trusted.authentication.principal;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apereo.cas.authentication.Credential;
import org.apereo.cas.authentication.principal.Principal;
import org.apereo.cas.authentication.principal.resolvers.PersonDirectoryPrincipalResolver;
/**
* Extracts the Principal out of PrincipalBearingCredential. It is very simple
* to resolve PrincipalBearingCredential to a Principal since the credentials
* already bear the ready-to-go Principal.
*
* @author Andrew Petro
* @since 3.0.0
*/
public class PrincipalBearingPrincipalResolver extends PersonDirectoryPrincipalResolver {
@Override
protected String extractPrincipalId(final Credential credential, final Principal currentPrincipal) {
return ((PrincipalBearingCredential) credential).getPrincipal().getId();
}
@Override
public boolean supports(final Credential credential) {
return credential instanceof PrincipalBearingCredential;
}
@Override
public String toString() {
return new ToStringBuilder(this)
.appendSuper(super.toString())
.toString();
}
}