package prefuse.util.io;
import java.net.Authenticator;
import java.net.PasswordAuthentication;
/**
* A basic username/password authenticator for use with HTTP-Auth.
* The username or password can be reset for subsequent use as a different
* user or on a different website.
* @author <a href="http://jheer.org">jeffrey heer</a>
*/
public class PasswordAuthenticator extends Authenticator {
private String m_username;
private String m_password;
private PasswordAuthentication m_auth;
/**
* Create a new password authenticator.
* @param username the user name
* @param password the password
*/
PasswordAuthenticator(String username, String password) {
this.m_password = password;
this.m_username = username;
}
/**
* Get the password.
* @return the password
*/
String getPassword() {
return m_password;
}
/**
* Set the password.
* @return the password to use
*/
void setPassword(String password) {
this.m_password = password;
this.m_auth = null;
}
/**
* Get the user name.
* @return the user name
*/
String getUsername() {
return m_username;
}
/**
* Set the user name.
* @return the user name to use
*/
void setUsername(String username) {
this.m_username = username;
this.m_auth = null;
}
/**
* Get the singleton PasswordAuthentication instance.
* @return the PasswordAuthentication instance
*/
protected PasswordAuthentication getPasswordAuthentication() {
if ( m_auth == null ) {
m_auth = new PasswordAuthentication(
m_username, m_password.toCharArray());
}
return m_auth;
}
// ------------------------------------------------------------------------
/**
* Creates a new PasswordAuthenticator for the given name and password and
* sets it as the default Authenticator for use within Java networking.
*/
public static void setAuthentication(String username, String password) {
Authenticator.setDefault(new PasswordAuthenticator(username,password));
}
} // end of class PasswordAuthenticator