- 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()
-
-
嵌套类汇总
嵌套类 变量和类型 类 描述 static class
Authenticator.RequestorType
请求身份验证的实体的类型。
-
构造方法摘要
构造方法 构造器 描述 Authenticator()
-
方法摘要
所有方法 静态方法 实例方法 具体的方法 变量和类型 方法 描述 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()
获取请求授权的站点的null
如果不可用,则获取InetAddress
。protected URL
getRequestingURL()
返回导致此身份验证请求的URL。protected Authenticator.RequestorType
getRequestorType()
返回请求者是代理还是服务器。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服务器请求身份验证时网络代码将使用的身份验证器。首先,如果有安全管理器,则使用
NetPermission("setDefaultAuthenticator")
权限调用其checkPermission
方法。 这可能会导致java.lang.SecurityException。- 参数
-
a
- 要设置的身份验证器。 如果a是null
则删除任何先前设置的验证器。 - 异常
-
SecurityException
- 如果存在安全管理器且其checkPermission
方法不允许设置默认验证器。 - 另请参见:
-
SecurityManager.checkPermission(java.security.Permission)
,NetPermission
-
getDefault
public static Authenticator getDefault()
获取默认身份验证器。 首先,如果有安全管理器,则使用NetPermission("requestPasswordAuthentication")
权限调用其checkPermission
方法。 这可能会导致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)
询问已在系统中注册的验证者以获取密码。首先,如果有安全管理器,则使用
NetPermission("requestPasswordAuthentication")
权限调用其checkPermission
方法。 这可能会导致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")
权限调用其checkPermission
方法。 这可能会导致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)
询问已在系统中注册的验证者以获取密码。首先,如果有安全管理器,则使用
NetPermission("requestPasswordAuthentication")
权限调用其checkPermission
方法。 这可能会导致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
向系统注册的验证器(如果有)。首先,如果有安全管理器,则使用
NetPermission("requestPasswordAuthentication")
权限调用其checkPermission
方法。 这可能会导致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()
获取请求授权的站点的null
如果不可用,则获取InetAddress
。- 结果
- 请求授权的站点的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()
返回请求者是代理还是服务器。- 结果
- 请求者的身份验证类型
- 从以下版本开始:
- 1.5
-
-