/* See LICENSE for licensing and NOTICE for copyright. */
package org.ldaptive.jaas;
import java.io.Serializable;
import org.ldaptive.LdapUtils;
/**
* Provides a custom implementation for adding LDAP credentials to a subject.
*
* @author Middleware Services
*/
public class LdapCredential implements Serializable
{
/** hash code seed. */
private static final int HASH_CODE_SEED = 401;
/** serial version uid. */
private static final long serialVersionUID = 1965949592374728021L;
/** LDAP credential. */
private final Object credential;
/**
* Creates a new ldap credential with the supplied credential.
*
* @param o credential to store
*/
public LdapCredential(final Object o)
{
credential = o;
}
/**
* Returns the credential for this ldap credential.
*
* @return credential
*/
public Object getCredential()
{
return credential;
}
@Override
public boolean equals(final Object o)
{
if (o == this) {
return true;
}
if (o instanceof LdapCredential) {
final LdapCredential v = (LdapCredential) o;
return LdapUtils.areEqual(credential, v.credential);
}
return false;
}
@Override
public int hashCode()
{
return LdapUtils.computeHashCode(HASH_CODE_SEED, credential);
}
@Override
public String toString()
{
return String.format("[%s@%d::%s]", getClass().getName(), hashCode(), credential);
}
}