public abstract class Authenticator extends Object
应用程序通过在子类中覆盖getPasswordAuthentication()
来使用此类。 该方法通常将使用各种getXXX()访问器方法来获取有关请求身份验证的实体的信息。 然后必须通过与用户交互或通过其他非交互方式获取用户名和密码。 凭证返回值为PasswordAuthentication
。
然后通过调用setDefault(Authenticator)
将该具体子类的一个实例注册到系统中。 当需要身份验证时,系统将调用requestPasswordAuthentication()方法之一,这又将调用注册对象的getPasswordAuthentication()方法。
请求身份验证的所有方法都具有失败的默认实现。
setDefault(java.net.Authenticator)
,
getPasswordAuthentication()
Modifier and Type | Class and Description |
---|---|
static class |
Authenticator.RequestorType
请求认证的实体的类型。
|
Constructor and Description |
---|
Authenticator() |
Modifier and Type | Method and Description |
---|---|
protected PasswordAuthentication |
getPasswordAuthentication()
当需要密码授权时调用。
|
protected String |
getRequestingHost()
获取
hostname 网站或代理请求验证的,或
null 如果不可用。
|
protected int |
getRequestingPort()
获取所请求连接的端口号。
|
protected String |
getRequestingPrompt()
获取请求者给出的提示字符串。
|
protected String |
getRequestingProtocol()
给出请求连接的协议。
|
protected String |
getRequestingScheme()
获取请求者的方案(例如HTTP防火墙的HTTP方案)。
|
protected InetAddress |
getRequestingSite()
获取
InetAddress 请求授权的站点,或者
null 如果不可用。
|
protected URL |
getRequestingURL()
返回导致此请求验证的URL。
|
protected Authenticator.RequestorType |
getRequestorType()
返回请求者是Proxy还是Server。
|
static PasswordAuthentication |
requestPasswordAuthentication(InetAddress addr, int port, String protocol, String prompt, String scheme)
请向系统注册的验证者询问密码。
|
static PasswordAuthentication |
requestPasswordAuthentication(String host, InetAddress addr, int port, String protocol, String prompt, String scheme)
请向系统注册的验证者询问密码。
|
static PasswordAuthentication |
requestPasswordAuthentication(String host, InetAddress addr, int port, String protocol, String prompt, String scheme, URL url, Authenticator.RequestorType reqType)
请向系统注册的验证者询问密码。
|
static void |
setDefault(Authenticator a)
设置代理或HTTP服务器要求进行身份验证时由网络代码使用的身份验证器。
|
public static void setDefault(Authenticator a)
首先,如果有一个安全管理员,它的checkPermission
方法被调用一个NetPermission("setDefaultAuthenticator")
权限。 这可能会导致java.lang.SecurityException异常。
a
- 要设置的认证器。
如果a是null
那么任何先前设置的认证器将被删除。
SecurityException
- 如果存在安全管理员,并且其
checkPermission
方法不允许设置默认认证器。
SecurityManager.checkPermission(java.security.Permission)
, NetPermission
public static PasswordAuthentication requestPasswordAuthentication(InetAddress addr, int port, String protocol, String prompt, String scheme)
首先,如果有一个安全管理器,它的checkPermission
方法被调用一个NetPermission("requestPasswordAuthentication")
权限。 这可能会导致java.lang.SecurityException异常。
addr
- 请求授权的站点的InetAddress,如果不知道,则为null。
port
- 所请求连接的端口
protocol
-
protocol
的协议(
getRequestingProtocol()
)
prompt
- 用户的提示字符串
scheme
- 认证方案
SecurityException
- 如果存在安全管理员,并且其
checkPermission
方法不允许密码认证请求。
SecurityManager.checkPermission(java.security.Permission)
, NetPermission
public static PasswordAuthentication requestPasswordAuthentication(String host, InetAddress addr, int port, String protocol, String prompt, String scheme)
首先,如果有一个安全管理员,它的checkPermission
方法被调用一个NetPermission("requestPasswordAuthentication")
权限。 这可能会导致java.lang.SecurityException异常。
host
- 请求身份验证的站点的主机名。
addr
- 请求认证的站点的InetAddress,如果不知道,则为null。
port
- 所请求连接的端口。
protocol
-
protocol
的协议(
getRequestingProtocol()
)
prompt
- 用于标识身份验证领域的用户的提示字符串。
scheme
- 认证方案
SecurityException
- 如果安全管理器存在,并且其
checkPermission
方法不允许密码认证请求。
SecurityManager.checkPermission(java.security.Permission)
, NetPermission
public static PasswordAuthentication requestPasswordAuthentication(String host, InetAddress addr, int port, String protocol, String prompt, String scheme, URL url, Authenticator.RequestorType reqType)
首先,如果有一个安全管理员,它的checkPermission
方法被调用一个NetPermission("requestPasswordAuthentication")
权限。 这可能会导致java.lang.SecurityException异常。
host
- 请求身份验证的站点的主机名。
addr
- 请求授权的站点的InetAddress,如果不知道,则为null。
port
- 所请求连接的端口
protocol
-
protocol
的协议(
getRequestingProtocol()
)
prompt
- 用户的提示字符串
scheme
- 认证方案
url
- 导致身份验证的请求URL
reqType
- 请求认证的实体的类型(服务器或代理)。
SecurityException
- 如果存在安全管理员,并且其
checkPermission
方法不允许密码认证请求。
SecurityManager.checkPermission(java.security.Permission)
, NetPermission
protected final String getRequestingHost()
hostname
网站或代理请求验证的,或
null
如果不可用。
protected final InetAddress getRequestingSite()
InetAddress
请求授权的站点,或者
null
如果不可用。
protected final int getRequestingPort()
int
连接的端口的int。
protected final String getRequestingProtocol()
URL.getProtocol()
protected final String getRequestingPrompt()
protected final String getRequestingScheme()
protected PasswordAuthentication getPasswordAuthentication()
protected URL getRequestingURL()
protected Authenticator.RequestorType getRequestorType()