package org.apereo.cas.authentication; import org.apache.commons.lang3.builder.HashCodeBuilder; import javax.validation.constraints.Size; import java.io.Serializable; /** * Credential for authenticating with a username and password. * * @author Scott Battaglia * @author Marvin S. Addison * @since 3.0.0 */ public class UsernamePasswordCredential implements Credential, Serializable { /** * Authentication attribute name for password. **/ public static final String AUTHENTICATION_ATTRIBUTE_PASSWORD = "credential"; private static final long serialVersionUID = -700605081472810939L; @Size(min = 1, message = "required.username") private String username; @Size(min = 1, message = "required.password") private String password; /** * Default constructor. */ public UsernamePasswordCredential() { } /** * Creates a new instance with the given username and password. * * @param userName Non-null user name. * @param password Non-null password. */ public UsernamePasswordCredential(final String userName, final String password) { this.username = userName; this.password = password; } public String getPassword() { return this.password; } public void setPassword(final String password) { this.password = password; } public String getUsername() { return this.username; } public void setUsername(final String userName) { this.username = userName; } @Override public String getId() { return this.username; } @Override public String toString() { return this.username; } @Override public boolean equals(final Object o) { if (this == o) { return true; } if (o == null || getClass() != o.getClass()) { return false; } final UsernamePasswordCredential that = (UsernamePasswordCredential) o; if (this.password != null ? !this.password.equals(that.password) : that.password != null) { return false; } return this.username != null ? this.username.equals(that.username) : that.username == null; } @Override public int hashCode() { return new HashCodeBuilder() .append(this.username) .append(this.password) .toHashCode(); } }