package org.apereo.cas.support.pac4j.authentication;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apereo.cas.authentication.AuthenticationBuilder;
import org.apereo.cas.authentication.AuthenticationTransaction;
import org.apereo.cas.authentication.Credential;
import org.apereo.cas.authentication.metadata.BaseAuthenticationMetadataPopulator;
import org.apereo.cas.authentication.principal.ClientCredential;
/**
* This class is a meta data populator for authentication. The client name associated to the authentication is added
* to the authentication attributes.
*
* @author Jerome Leleu
* @since 3.5.0
*/
public class ClientAuthenticationMetaDataPopulator extends BaseAuthenticationMetadataPopulator {
/***
* The name of the client used to perform the authentication.
*/
public static final String CLIENT_NAME = "clientName";
@Override
public void populateAttributes(final AuthenticationBuilder builder, final AuthenticationTransaction transaction) {
final ClientCredential clientCredential = (ClientCredential) transaction.getCredential();
builder.addAttribute(CLIENT_NAME, clientCredential.getCredentials().getClientName());
}
@Override
public boolean supports(final Credential credential) {
return credential instanceof ClientCredential;
}
@Override
public String toString() {
return new ToStringBuilder(this)
.appendSuper(super.toString())
.toString();
}
}