This
abstract class defines a customizable mechanism for requesting and
performing
password authentication
when required in URL-based networking. The static
setDefault( )
method establishes the systemwide Authenticator.
An Authenticator implementation can obtain the
required authentication information from the user however it wants
(e.g., through a text- or a GUI-based interface).
setDefault( ) can be called only once; subsequent
calls are ignored. Calling setDefault( ) requires
an appropriate NetPermission.
When an application or the Java runtime system
requires password authentication (to read the contents of a specified
URL, for example), it calls the static
requestPasswordAuthentication( ) method, passing
arguments that specify the host and port for which the password is
required and a prompt that may be displayed to the user. This method
looks up the default Authenticator for the system
and calls its getPasswordAuthentication( ) method.
Calling requestPasswordAuthentication( ) requires
an appropriate NetPermission.
Authenticator is an
abstract class; its default implementation of
getPasswordAuthentication( ) always returns
null. To create an
Authenticator, you must override this method so
that it prompts the user to enter a username and password and returns
that information in the form of a
PasswordAuthentication object. Your implementation
of getPasswordAuthentication( ) may call the
various getrequesting( ) methods to find out who
is requesting the password and what the recommended user prompt is.
Java 1.4 added a version of the static
requestPasswordAuthentication( ) method that
allows specification of the requesting hostname. A corresponding
getrequestingHost( ) instance method was also
added.
Java 5.0 adds yet another version of
requestPasswordAuthentication( ), and
corresponding methods to query the URL that
requires the password and the RequestorType of the
request. RequestorType is a nested enum type that
specifies whether the request comes from an HTTP server or a proxy
server.
public abstract class
Authenticator {
// Public Constructors
public
Authenticator ( );
// Nested Types
5.0 public enum
RequestorType ;
// Public Class Methods
public static PasswordAuthentication
requestPasswordAuthentication
(InetAddress
addr , int
port , String
protocol ,
String
prompt , String
scheme );
1.4 public static PasswordAuthentication
requestPasswordAuthentication
(String
host , InetAddress
addr , int
port , String
protocol ,
String
prompt , String
scheme );
5.0 public static PasswordAuthentication
requestPasswordAuthentication (String
host ,
InetAddress
addr , int
port , String
protocol , String
prompt ,
String
scheme , URL
url , Authenticator.RequestorType
reqType );
public static void
setDefault (Authenticator
a ); synchronized
// Protected Instance Methods
protected PasswordAuthentication
getPasswordAuthentication ( ); constant
1.4 protected final String
getRequestingHost ( );
protected final int
getRequestingPort ( );
protected final String
getRequestingPrompt ( );
protected final String
getRequestingProtocol ( );
protected final String
getRequestingScheme ( );
protected final InetAddress
getRequestingSite ( );
5.0 protected URL
getRequestingURL ( );
5.0 protected Authenticator.RequestorType
getRequestorType ( );
}