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