package com.hwlcn.security.authc; public class UsernamePasswordToken implements HostAuthenticationToken, RememberMeAuthenticationToken { private String username; private char[] password; private boolean rememberMe = false; private String host; public UsernamePasswordToken() { } public UsernamePasswordToken(final String username, final char[] password) { this(username, password, false, null); } public UsernamePasswordToken(final String username, final String password) { this(username, password != null ? password.toCharArray() : null, false, null); } public UsernamePasswordToken(final String username, final char[] password, final String host) { this(username, password, false, host); } public UsernamePasswordToken(final String username, final String password, final String host) { this(username, password != null ? password.toCharArray() : null, false, host); } public UsernamePasswordToken(final String username, final char[] password, final boolean rememberMe) { this(username, password, rememberMe, null); } public UsernamePasswordToken(final String username, final String password, final boolean rememberMe) { this(username, password != null ? password.toCharArray() : null, rememberMe, null); } public UsernamePasswordToken(final String username, final char[] password, final boolean rememberMe, final String host) { this.username = username; this.password = password; this.rememberMe = rememberMe; this.host = host; } public UsernamePasswordToken(final String username, final String password, final boolean rememberMe, final String host) { this(username, password != null ? password.toCharArray() : null, rememberMe, host); } public String getUsername() { return username; } public void setUsername(String username) { this.username = username; } public char[] getPassword() { return password; } public void setPassword(char[] password) { this.password = password; } public Object getPrincipal() { return getUsername(); } public Object getCredentials() { return getPassword(); } public String getHost() { return host; } public void setHost(String host) { this.host = host; } public boolean isRememberMe() { return rememberMe; } public void setRememberMe(boolean rememberMe) { this.rememberMe = rememberMe; } public void clear() { this.username = null; this.host = null; this.rememberMe = false; if (this.password != null) { for (int i = 0; i < password.length; i++) { this.password[i] = 0x00; } this.password = null; } } public String toString() { StringBuilder sb = new StringBuilder(); sb.append(getClass().getName()); sb.append(" - "); sb.append(username); sb.append(", rememberMe=").append(rememberMe); if (host != null) { sb.append(" (").append(host).append(")"); } return sb.toString(); } }