java.lang.Object java.net.Authenticator
public abstract class Authenticator
Authenticator 类表示懂得如何获得网络连接验证的对象。通常,它通过提示用户输入信息来完成此操作。
应用程序通过重写子类中的 getPasswordAuthentication()
使用此类。此方法通常使用各种 getXXX() 访问器方法获取关于请求验证的实体的信息。然后,它必须通过与用户交互或者某些其他非交互手段获取用户名和密码。之后凭据将以 PasswordAuthentication
返回值的形式返回。
接下来通过调用 setDefault(Authenticator)
向系统注册此具体子类的实例。需要进行验证时,系统将调用其中一个 requestPasswordAuthentication() 方法,这些方法将依次调用注册对象的 getPasswordAuthentication() 方法。
请求验证的所有方法都有一个失败的默认实现。
setDefault(java.net.Authenticator)
,
getPasswordAuthentication()
嵌套类摘要 | |
---|---|
static class |
Authenticator.RequestorType 请求验证的实体的类型。 |
构造方法摘要 | |
---|---|
Authenticator() |
方法摘要 | |
---|---|
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() 返回请求方是代理还是服务器。 |
static PasswordAuthentication |
requestPasswordAuthentication(InetAddress addr, int port, String protocol, String prompt, String scheme) 要求已经向系统注册的 authenticator 提供密码。 |
static PasswordAuthentication |
requestPasswordAuthentication(String host, InetAddress addr, int port, String protocol, String prompt, String scheme) 要求已经向系统注册的 authenticator 提供密码。 |
static PasswordAuthentication |
requestPasswordAuthentication(String host, InetAddress addr, int port, String protocol, String prompt, String scheme, URL url, Authenticator.RequestorType reqType) 要求已经向系统注册的 authenticator 提供密码。 |
static void |
setDefault(Authenticator a) 设置在代理或 HTTP 服务器请求验证时连网密码使用的 authenticator。 |
从类 java.lang.Object 继承的方法 |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
构造方法详细信息 |
---|
public Authenticator()
方法详细信息 |
---|
public static void setDefault(Authenticator a)
首先,如果存在安全管理器,则在 NetPermission("setDefaultAuthenticator")
权限下调用 checkPermission
方法。这可能导致 java.lang.SecurityException。
a
- 要设置的 authenticator。如果 a 为
null
,则移除以前设置的所有 authenticator。
SecurityException
- 如果安全管理器存在并且其
checkPermission
方法不允许设置默认 authenticator。
SecurityManager.checkPermission(java.security.Permission)
,
NetPermission
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
- 验证方案
SecurityException
- 如果安全管理器存在并且其
checkPermission
方法不允许密码验证请求。
SecurityManager.checkPermission(java.security.Permission)
,
NetPermission
public static PasswordAuthentication requestPasswordAuthentication(String host, InetAddress addr, int port, String protocol, String prompt, String scheme)
首先,如果存在安全管理器,则在 NetPermission("requestPasswordAuthentication")
权限下调用 checkPermission
方法。这可能导致 java.lang.SecurityException。
host
- 请求验证的站点的主机名。
addr
- 请求授权的站点的 InetAddress;如果未知则为 null。
port
- 所请求的连接的端口。
protocol
- 请求连接的协议 (
getRequestingProtocol()
)
prompt
- 标识验证域 (authentication realm) 的用户的提示字符串。
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)
首先,如果存在安全管理器,则在 NetPermission("requestPasswordAuthentication")
权限下调用 checkPermission
方法。这可能导致 java.lang.SecurityException。
host
- 请求验证的站点的主机名。
addr
- 请求授权的站点的 InetAddress;或者未知则为 null。
port
- 所请求的连接的端口
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
。
protected final String getRequestingProtocol()
URL.getProtocol()
protected final String getRequestingPrompt()
protected final String getRequestingScheme()
protected PasswordAuthentication getPasswordAuthentication()
protected URL getRequestingURL()
protected Authenticator.RequestorType getRequestorType()