Team LiB
Previous Section Next Section

Authenticatorjava.net

Java 1.2

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( );  
}

    Team LiB
    Previous Section Next Section