package org.apereo.cas.digest;
import com.fasterxml.jackson.annotation.JsonCreator;
import com.fasterxml.jackson.annotation.JsonProperty;
import org.apache.commons.lang3.builder.EqualsBuilder;
import org.apache.commons.lang3.builder.HashCodeBuilder;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apereo.cas.authentication.AbstractCredential;
/**
* This is {@link DigestCredential}.
*
* @author Misagh Moayyed
* @since 5.0.0
*/
public class DigestCredential extends AbstractCredential {
private static final long serialVersionUID = 1523693794392289803L;
private String realm;
private String hash;
private String id;
/**
* Instantiates a new Basic identifiable credential.
*
* @param id the id
* @param realm the realm
* @param hash the hash
*/
@JsonCreator
public DigestCredential(@JsonProperty("id") final String id,
@JsonProperty("realm") final String realm,
@JsonProperty("hash") final String hash) {
this.realm = realm;
this.hash = hash;
this.id = id;
}
public String getRealm() {
return realm;
}
public void setRealm(final String realm) {
this.realm = realm;
}
public String getHash() {
return hash;
}
public void setHash(final String hash) {
this.hash = hash;
}
@Override
public boolean equals(final Object obj) {
if (obj == null) {
return false;
}
if (obj == this) {
return true;
}
if (obj.getClass() != getClass()) {
return false;
}
final DigestCredential rhs = (DigestCredential) obj;
return new EqualsBuilder()
.appendSuper(super.equals(obj))
.append(this.realm, rhs.realm)
.append(this.hash, rhs.hash)
.append(this.id, rhs.id)
.isEquals();
}
@Override
public int hashCode() {
return new HashCodeBuilder()
.appendSuper(super.hashCode())
.append(realm)
.append(hash)
.append(id)
.toHashCode();
}
@Override
public String toString() {
return new ToStringBuilder(this)
.appendSuper(super.toString())
.append("realm", realm)
.append("hash", "[PROTECTED]")
.append("id", this.id)
.toString();
}
@Override
public String getId() {
return this.id;
}
}