package org.yamcs.security;
import java.util.Arrays;
/**
* Created by msc on 05/05/15.
*/
public class UsernamePasswordToken implements AuthenticationToken {
/**
* The username, password
*/
private String username;
private char[] password;
/**
* Constructors
*
* @param username
* @param password
*/
public UsernamePasswordToken(final String username, final char[] password) {
this.username = username;
this.password = password;
}
public UsernamePasswordToken(final String username, final String password) {
this(username, password != null ? password.toCharArray() : null);
}
/**
* getter/setter
*/
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public char[] getPassword() {
return password;
}
public String getPasswordS() {
if(password == null) return null;
return new String(password);
}
public void setPassword(char[] password) {
this.password = password;
}
public void setPassword(String password) {
this.password = password != null ? password.toCharArray() : null;
}
@Override
public Object getPrincipal() {
return username;
}
@Override
public String toString() {
String repr = (username != null ? username : "null");
repr += (password != null ? "/*****" : "/null");
return repr;
}
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
UsernamePasswordToken that = (UsernamePasswordToken) o;
if (!Arrays.equals(password, that.password)) return false;
if (username != null ? !username.equals(that.username) : that.username != null) return false;
return true;
}
@Override
public int hashCode() {
int result = username != null ? username.hashCode() : 0;
result = 31 * result + (password != null ? Arrays.hashCode(password) : 0);
return result;
}
}