The class Authenticator represents an object that knows how to obtain authentication for a network connection. Usually, it will do this by prompting the user for information.
Applications use this class by overriding getPasswordAuthentication()
in a sub-class. This method will
typically use the various getXXX() accessor methods to get information
about the entity requesting authentication. It must then acquire a
username and password either by interacting with the user or through
some other non-interactive means. The credentials are then returned
as a PasswordAuthentication
return value.
An instance of this concrete sub-class is then registered
with the system by calling setDefault(Authenticator)
.
When authentication is required, the system will invoke one of the
requestPasswordAuthentication() methods which in turn will call the
getPasswordAuthentication() method of the registered object.
All methods that request authentication have a default implementation that fails.
Nested Class Summary
enum | Authenticator.RequestorType | The type of the entity requesting authentication. |
Public Constructor Summary
Public Method Summary
static PasswordAuthentication |
requestPasswordAuthentication(String host, InetAddress addr, int port, String protocol, String prompt, String scheme, URL url, Authenticator.RequestorType reqType)
Ask the authenticator that has been registered with the system
for a password.
|
static PasswordAuthentication |
requestPasswordAuthentication(InetAddress addr, int port, String protocol, String prompt, String scheme)
Ask the authenticator that has been registered with the system
for a password.
|
static PasswordAuthentication |
requestPasswordAuthentication(String host, InetAddress addr, int port, String protocol, String prompt, String scheme)
Ask the authenticator that has been registered with the system
for a password.
|
synchronized static void |
setDefault(Authenticator a)
Sets the authenticator that will be used by the networking code
when a proxy or an HTTP server asks for authentication.
|
Protected Method Summary
PasswordAuthentication |
getPasswordAuthentication()
Called when password authorization is needed.
|
final String |
getRequestingHost()
Gets the
hostname of the
site or proxy requesting authentication, or null
if not available. |
final int |
getRequestingPort()
Gets the port number for the requested connection.
|
final String |
getRequestingPrompt()
Gets the prompt string given by the requestor.
|
final String |
getRequestingProtocol()
Give the protocol that's requesting the connection.
|
final String |
getRequestingScheme()
Gets the scheme of the requestor (the HTTP scheme
for an HTTP firewall, for example).
|
final InetAddress |
getRequestingSite()
Gets the
InetAddress of the
site requesting authorization, or null
if not available. |
URL |
getRequestingURL()
Returns the URL that resulted in this
request for authentication.
|
Authenticator.RequestorType |
getRequestorType()
Returns whether the requestor is a Proxy or a Server.
|
Inherited Method Summary
Public Constructors
public Authenticator ()
Public Methods
public static PasswordAuthentication requestPasswordAuthentication (String host, InetAddress addr, int port, String protocol, String prompt, String scheme, URL url, Authenticator.RequestorType reqType)
Ask the authenticator that has been registered with the system for a password.
First, if there is a security manager, its checkPermission
method is called with a
NetPermission("requestPasswordAuthentication")
permission.
This may result in a java.lang.SecurityException.
Parameters
host | The hostname of the site requesting authentication. |
---|---|
addr | The InetAddress of the site requesting authorization, or null if not known. |
port | the port for the requested connection |
protocol | The protocol that's requesting the connection
(getRequestingProtocol() ) |
prompt | A prompt string for the user |
scheme | The authentication scheme |
url | The requesting URL that caused the authentication |
reqType | The type (server or proxy) of the entity requesting authentication. |
Returns
- The username/password, or null if one can't be gotten.
Throws
SecurityException | if a security manager exists and its
checkPermission method doesn't allow
the password authentication request. |
---|
public static PasswordAuthentication requestPasswordAuthentication (InetAddress addr, int port, String protocol, String prompt, String scheme)
Ask the authenticator that has been registered with the system for a password.
First, if there is a security manager, its checkPermission
method is called with a
NetPermission("requestPasswordAuthentication")
permission.
This may result in a java.lang.SecurityException.
Parameters
addr | The InetAddress of the site requesting authorization, or null if not known. |
---|---|
port | the port for the requested connection |
protocol | The protocol that's requesting the connection
(getRequestingProtocol() ) |
prompt | A prompt string for the user |
scheme | The authentication scheme |
Returns
- The username/password, or null if one can't be gotten.
Throws
SecurityException | if a security manager exists and its
checkPermission method doesn't allow
the password authentication request. |
---|
public static PasswordAuthentication requestPasswordAuthentication (String host, InetAddress addr, int port, String protocol, String prompt, String scheme)
Ask the authenticator that has been registered with the system for a password. This is the preferred method for requesting a password because the hostname can be provided in cases where the InetAddress is not available.
First, if there is a security manager, its checkPermission
method is called with a
NetPermission("requestPasswordAuthentication")
permission.
This may result in a java.lang.SecurityException.
Parameters
host | The hostname of the site requesting authentication. |
---|---|
addr | The InetAddress of the site requesting authentication, or null if not known. |
port | the port for the requested connection. |
protocol | The protocol that's requesting the connection
(getRequestingProtocol() ) |
prompt | A prompt string for the user which identifies the authentication realm. |
scheme | The authentication scheme |
Returns
- The username/password, or null if one can't be gotten.
Throws
SecurityException | if a security manager exists and its
checkPermission method doesn't allow
the password authentication request. |
---|
public static synchronized void setDefault (Authenticator a)
Sets the authenticator that will be used by the networking code when a proxy or an HTTP server asks for authentication.
First, if there is a security manager, its checkPermission
method is called with a
NetPermission("setDefaultAuthenticator")
permission.
This may result in a java.lang.SecurityException.
Parameters
a | The authenticator to be set. If a is null then
any previously set authenticator is removed. |
---|
Throws
SecurityException | if a security manager exists and its
checkPermission method doesn't allow
setting the default authenticator. |
---|
Protected Methods
protected PasswordAuthentication getPasswordAuthentication ()
Called when password authorization is needed. Subclasses should override the default implementation, which returns null.
Returns
- The PasswordAuthentication collected from the user, or null if none is provided.
protected final String getRequestingHost ()
Gets the hostname
of the
site or proxy requesting authentication, or null
if not available.
Returns
- the hostname of the connection requiring authentication, or null if it's not available.
protected final int getRequestingPort ()
Gets the port number for the requested connection.
Returns
- an
int
indicating the port for the requested connection.
protected final String getRequestingPrompt ()
Gets the prompt string given by the requestor.
Returns
- the prompt string given by the requestor (realm for http requests)
protected final String getRequestingProtocol ()
Give the protocol that's requesting the connection. Often this will be based on a URL, but in a future JDK it could be, for example, "SOCKS" for a password-protected SOCKS5 firewall.
Returns
- the protocol, optionally followed by "/version", where version is a version number.
See Also
protected final String getRequestingScheme ()
Gets the scheme of the requestor (the HTTP scheme for an HTTP firewall, for example).
Returns
- the scheme of the requestor
protected final InetAddress getRequestingSite ()
Gets the InetAddress
of the
site requesting authorization, or null
if not available.
Returns
- the InetAddress of the site requesting authorization, or null if it's not available.
protected URL getRequestingURL ()
Returns the URL that resulted in this request for authentication.
Returns
- the requesting URL
protected Authenticator.RequestorType getRequestorType ()
Returns whether the requestor is a Proxy or a Server.
Returns
- the authentication type of the requestor