package org.apereo.cas.authentication.principal.resolvers;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apereo.cas.authentication.AuthenticationHandler;
import org.apereo.cas.authentication.Credential;
import org.apereo.cas.authentication.principal.DefaultPrincipalFactory;
import org.apereo.cas.authentication.principal.Principal;
import org.apereo.cas.authentication.principal.PrincipalFactory;
import org.apereo.cas.authentication.principal.PrincipalResolver;
import org.apereo.services.persondir.IPersonAttributeDao;
/**
* Provides the most basic means of principal resolution by mapping
* {@link Credential#getId()} onto
* {@link Principal#getId()}.
*
* @author Marvin S. Addison
* @since 4.0.0
*/
public class ProxyingPrincipalResolver implements PrincipalResolver {
private final PrincipalFactory principalFactory;
public ProxyingPrincipalResolver() {
this(new DefaultPrincipalFactory());
}
public ProxyingPrincipalResolver(final PrincipalFactory principalFactory) {
this.principalFactory = principalFactory;
}
@Override
public Principal resolve(final Credential credential, final Principal currentPrincipal, final AuthenticationHandler handler) {
return this.principalFactory.createPrincipal(credential.getId());
}
@Override
public boolean supports(final Credential credential) {
return credential.getId() != null;
}
@Override
public String toString() {
return new ToStringBuilder(this).toString();
}
@Override
public IPersonAttributeDao getAttributeRepository() {
return null;
}
}