- java.lang.Object
-
- java.net.Authenticator
-
public abstract class Authenticator extends Object
Authenticator类代表一个知道如何获取网络连接认证的对象。 通常,它将通过提示用户提供信息来做到这一点。应用程序通过在子类中覆盖
getPasswordAuthentication()
来使用此类。 该方法通常将使用各种getXXX()访问器方法来获取有关请求身份验证的实体的信息。 然后必须通过与用户交互或通过其他非交互方式获取用户名和密码。 凭证返回值为PasswordAuthentication
。然后通过调用
setDefault(Authenticator)
向系统注册此具体子类的一个实例。 当需要身份验证时,系统将调用requestPasswordAuthentication()方法之一,这又将调用注册对象的getPasswordAuthentication()方法。请求身份验证的所有方法都具有失败的默认实现。
- 从以下版本开始:
- 1.2
- 另请参见:
-
setDefault(java.net.Authenticator)
,getPasswordAuthentication()
-
-
Nested Class Summary
Nested Classes Modifier and Type Class 描述 static class
Authenticator.RequestorType
请求认证的实体的类型。
-
构造方法摘要
构造方法 Constructor 描述 Authenticator()
-
方法摘要
所有方法 静态方法 接口方法 具体的方法 Modifier and Type 方法 描述 static Authenticator
getDefault()
获取默认验证器。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(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 PasswordAuthentication
requestPasswordAuthentication(Authenticator authenticator, String host, InetAddress addr, int port, String protocol, String prompt, String scheme, URL url, Authenticator.RequestorType reqType)
询问给定的authenticator
密码。static PasswordAuthentication
requestPasswordAuthentication(InetAddress addr, int port, String protocol, String prompt, String scheme)
请向系统注册的验证者询问密码。PasswordAuthentication
requestPasswordAuthenticationInstance(String host, InetAddress addr, int port, String protocol, String prompt, String scheme, URL url, Authenticator.RequestorType reqType)
向该验证者询问密码。static void
setDefault(Authenticator a)
设置代理或HTTP服务器要求进行身份验证时由网络代码使用的身份验证器。
-
-
-
方法详细信息
-
setDefault
public static void setDefault(Authenticator a)
设置代理或HTTP服务器要求进行身份验证时由网络代码使用的身份验证器。首先,如果有一个安全管理员,它的
checkPermission
方法被调用一个NetPermission("setDefaultAuthenticator")
权限。 这可能会导致java.lang.SecurityException异常。- 参数
-
a
- 要设置的认证器。 如果a是null
那么任何先前设置的认证器将被删除。 - 异常
-
SecurityException
- 如果安全管理器存在,并且其checkPermission
方法不允许设置默认验证器。 - 另请参见:
-
SecurityManager.checkPermission(java.security.Permission)
,NetPermission
-
getDefault
public static Authenticator getDefault()
获取默认验证器。 首先,如果有一个安全管理器,它的checkPermission
方法被调用一个NetPermission("requestPasswordAuthentication")
权限。 这可能会导致java.lang.SecurityException异常。 然后返回默认认证器(如果设置)。 否则返回null
。- 结果
-
缺省认证方,如果设置,
null
。 - 异常
-
SecurityException
- 如果安全管理器存在,并且其checkPermission
方法不允许请求密码认证。 - 从以下版本开始:
- 9
- 另请参见:
-
SecurityManager.checkPermission(java.security.Permission)
,NetPermission
-
requestPasswordAuthentication
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
- 请求连接的协议(getRequestingProtocol()
) -
prompt
- 用户的提示字符串 -
scheme
- 认证方案 - 结果
- 用户名/密码,如果不能得到,则为null。
- 异常
-
SecurityException
- 如果存在安全管理员,并且其checkPermission
方法不允许密码认证请求。 - 另请参见:
-
SecurityManager.checkPermission(java.security.Permission)
,NetPermission
-
requestPasswordAuthentication
public static PasswordAuthentication requestPasswordAuthentication(String host, InetAddress addr, int port, String protocol, String prompt, String scheme)
请向系统注册的验证者询问密码。 这是申请密码的首选方法,因为在InetAddress不可用的情况下可以提供主机名。首先,如果有一个安全管理员,它的
checkPermission
方法被调用一个NetPermission("requestPasswordAuthentication")
权限。 这可能会导致java.lang.SecurityException异常。- 参数
-
host
- 请求身份验证的站点的主机名。 -
addr
- 请求认证的站点的InetAddress,如果不知道,则为null。 -
port
- 所请求连接的端口。 -
protocol
- 请求连接的协议(getRequestingProtocol()
) -
prompt
- 用于标识身份验证领域的用户的提示字符串。 -
scheme
- 认证方案 - 结果
- 用户名/密码,如果不能得到,则为null。
- 异常
-
SecurityException
- 如果安全管理器存在,并且其checkPermission
方法不允许密码认证请求。 - 从以下版本开始:
- 1.4
- 另请参见:
-
SecurityManager.checkPermission(java.security.Permission)
,NetPermission
-
requestPasswordAuthentication
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
- 请求连接的协议(getRequestingProtocol()
) -
prompt
- 用户的提示字符串 -
scheme
- 认证方案 -
url
- 导致身份验证的请求URL -
reqType
- 请求身份验证的实体的类型(服务器或代理)。 - 结果
- 用户名/密码,如果不能得到,则为null。
- 异常
-
SecurityException
- 如果存在安全管理员,并且其checkPermission
方法不允许密码认证请求。 - 从以下版本开始:
- 1.5
- 另请参见:
-
SecurityManager.checkPermission(java.security.Permission)
,NetPermission
-
requestPasswordAuthentication
public static PasswordAuthentication requestPasswordAuthentication(Authenticator authenticator, String host, InetAddress addr, int port, String protocol, String prompt, String scheme, URL url, Authenticator.RequestorType reqType)
询问给定的authenticator
密码。 如果给定的authenticator
为空,则使用已使用setDefault
向系统注册的认证方(如果有)。首先,如果有一个安全管理员,它的
checkPermission
方法被调用一个NetPermission("requestPasswordAuthentication")
权限。 这可能会导致java.lang.SecurityException异常。- 参数
-
authenticator
- 认证者,或null
。 -
host
- 请求身份验证的站点的主机名。 -
addr
- 请求授权的站点的InetAddress,如果不知道,则为null。 -
port
- 所请求连接的端口 -
protocol
- 请求连接的协议(getRequestingProtocol()
) -
prompt
- 用户的提示字符串 -
scheme
- 认证方案 -
url
- 导致身份验证的请求URL -
reqType
- 请求身份验证的实体的类型(服务器或代理)。 - 结果
-
用户名/密码,或
null
如果不能得到。 - 异常
-
SecurityException
- 如果安全管理器存在,并且其checkPermission
方法不允许密码认证请求。 - 从以下版本开始:
- 9
- 另请参见:
-
SecurityManager.checkPermission(java.security.Permission)
,NetPermission
-
requestPasswordAuthenticationInstance
public PasswordAuthentication requestPasswordAuthenticationInstance(String host, InetAddress addr, int port, String protocol, String prompt, String scheme, URL url, Authenticator.RequestorType reqType)
向该验证者询问密码。- 参数
-
host
- 请求身份验证的站点的主机名。 -
addr
- 请求授权的站点的InetAddress,如果不知道,则为null。 -
port
- 所请求连接的端口 -
protocol
- 请求连接的协议(getRequestingProtocol()
) -
prompt
- 用户的提示字符串 -
scheme
- 认证方案 -
url
- 导致身份验证的请求URL -
reqType
- 请求身份验证的实体的类型(服务器或代理)。 - 结果
- 用户名/密码,如果不能得到,则为null
- 从以下版本开始:
- 9
-
getRequestingHost
protected final String getRequestingHost()
获取hostname
的网站或代理请求验证的,或null
如果不可用。- 结果
- 需要验证的连接的主机名,如果不可用,则为null。
- 从以下版本开始:
- 1.4
-
getRequestingSite
protected final InetAddress getRequestingSite()
获取InetAddress
请求授权的站点,或者null
如果不可用。- 结果
- 请求授权的站点的InetAddress,如果不可用,则为null。
-
getRequestingPort
protected final int getRequestingPort()
获取请求的连接的端口号。- 结果
-
一个
int
指示所请求连接的端口。
-
getRequestingProtocol
protected final String getRequestingProtocol()
给出请求连接的协议。 通常这将基于一个URL,但在未来的JDK中,例如可能是一个受密码保护的SOCKS5防火墙的“SOCKS”。- 结果
- 协议,可选地后跟“/ version”,其中version是版本号。
- 另请参见:
-
URL.getProtocol()
-
getRequestingPrompt
protected final String getRequestingPrompt()
获取请求者给出的提示字符串。- 结果
- 请求者提供的提示字符串(http请求的领域)
-
getRequestingScheme
protected final String getRequestingScheme()
获取请求者的方案(例如HTTP防火墙的HTTP方案)。- 结果
- 请求者的方案
-
getPasswordAuthentication
protected PasswordAuthentication getPasswordAuthentication()
当需要密码授权时调用。 子类应该覆盖默认的实现,返回null。- 结果
- 从用户收集的PasswordAuthentication,如果没有提供,则为null。
-
getRequestingURL
protected URL getRequestingURL()
返回导致此请求验证的URL。- 结果
- 请求的URL
- 从以下版本开始:
- 1.5
-
getRequestorType
protected Authenticator.RequestorType getRequestorType()
返回请求者是Proxy还是Server。- 结果
- 请求者的身份验证类型
- 从以下版本开始:
- 1.5
-
-