- 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 classAuthenticator.RequestorType请求认证的实体的类型。
-
构造方法摘要
构造方法 Constructor 描述 Authenticator()
-
方法摘要
所有方法 静态方法 接口方法 具体的方法 Modifier and Type 方法 描述 static AuthenticatorgetDefault()获取默认验证器。protected PasswordAuthenticationgetPasswordAuthentication()当需要密码授权时调用。protected StringgetRequestingHost()获取hostname的网站或代理请求验证的,或null如果不可用。protected intgetRequestingPort()获取请求的连接的端口号。protected StringgetRequestingPrompt()获取请求者给出的提示字符串。protected StringgetRequestingProtocol()给出请求连接的协议。protected StringgetRequestingScheme()获取请求者的方案(例如HTTP防火墙的HTTP方案)。protected InetAddressgetRequestingSite()获取InetAddress请求授权的站点,或者null如果不可用。protected URLgetRequestingURL()返回导致此请求验证的URL。protected Authenticator.RequestorTypegetRequestorType()返回请求者是Proxy还是Server。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)请向系统注册的验证者询问密码。PasswordAuthenticationrequestPasswordAuthenticationInstance(String host, InetAddress addr, int port, String protocol, String prompt, String scheme, URL url, Authenticator.RequestorType reqType)向该验证者询问密码。static voidsetDefault(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
-
-