package org.apereo.cas.authentication.principal;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apereo.cas.authentication.Credential;
import org.pac4j.core.profile.UserProfile;
import java.io.Serializable;
/**
* This class represents client credentials and (after authentication) a user profile.
*
* @author Jerome Leleu
* @since 3.5.0
*/
public class ClientCredential implements Credential, Serializable {
/**
* The serialVersionUID.
*/
private static final long serialVersionUID = -7883301304291894763L;
private boolean typedIdUsed = true;
/**
* The user profile after authentication.
*/
private UserProfile userProfile;
/**
* The internal credentials provided by the authentication at the provider.
*/
private org.pac4j.core.credentials.Credentials credentials;
/**
* Define the credentials.
*
* @param theCredentials The authentication credentials
*/
public ClientCredential(final org.pac4j.core.credentials.Credentials theCredentials) {
this.credentials = theCredentials;
}
/**
* Return the credentials.
*
* @return the credentials
*/
public org.pac4j.core.credentials.Credentials getCredentials() {
return this.credentials;
}
/**
* Return the profile of the authenticated user.
*
* @return the profile of the authenticated user
*/
public UserProfile getUserProfile() {
return this.userProfile;
}
/**
* Define the user profile.
*
* @param theUserProfile The user profile
*/
public void setUserProfile(final UserProfile theUserProfile) {
this.userProfile = theUserProfile;
}
@Override
public String getId() {
if (this.userProfile != null) {
if (this.typedIdUsed) {
return this.userProfile.getTypedId();
}
return this.userProfile.getId();
}
return null;
}
public void setTypedIdUsed(final boolean typedIdUsed) {
this.typedIdUsed = typedIdUsed;
}
@Override
public String toString() {
return new ToStringBuilder(this)
.append("id", getId())
.toString();
}
}