java.lang.Object
com.sun.security.auth.module.KeyStoreLoginModule
- 所有已实现的接口:
LoginModule
提供 JAAS 登录模块,提示输入密钥存储别名并使用别名的主体和凭据填充主题。为主体主体中别名凭据中第一个证书的主体可分辨名称存储
X500Principal
,在主体公共凭据中存储别名证书路径,以及X500PrivateCredential
,其证书是别名证书路径中的第一个证书,其私钥是主题私人凭证中的别名私钥。
识别配置文件中的以下选项:
-
keyStoreURL
-
指定密钥库位置的 URL。默认为指向
user.home
系统属性指定目录中的 .keystore 文件的 URL。来自此 URL 的输入流被传递给KeyStore.load
方法。如果必须将null
流传递给KeyStore.load
方法,则可以指定“NONE”。例如,如果 KeyStore 驻留在硬件令牌设备上,则应指定“NONE”。 -
keyStoreType
-
密钥存储类型。如果未指定,则默认为调用
KeyStore.getDefaultType()
的结果。如果类型是“PKCS11”,则 keyStoreURL 必须是“NONE”并且不能指定 privateKeyPasswordURL。 -
keyStoreProvider
- 密钥存储提供程序。如果未指定,则使用标准搜索顺序查找提供者。
-
keyStoreAlias
- 用于登录的密钥库中的别名。当没有提供回调处理程序时是必需的。没有默认值。
-
keyStorePasswordURL
-
指定密钥库密码位置的 URL。当未提供回调处理程序且
protected
为 false 时是必需的。没有默认值。 -
privateKeyPasswordURL
- 指定访问此别名的私钥所需的特定私钥密码位置的 URL。如果需要此值但未指定,则使用密钥库密码。
-
protected
- 如果 KeyStore 具有单独的、受保护的身份验证路径(例如,连接到智能卡的专用 PIN 键盘),则应将此值设置为“true”。默认为“假”。如果为“true”,则不得指定 keyStorePasswordURL 和 privateKeyPasswordURL。
-
构造方法总结
构造方法 -
方法总结
-
构造方法详细信息
-
KeyStoreLoginModule
public KeyStoreLoginModule()创建一个KeyStoreLoginModule
。
-
-
方法详情
-
initialize
public void initialize(Subject subject, CallbackHandler callbackHandler, Map <String , ?> sharedState, Map <String , ?> options) 初始化这个LoginModule
。- 指定者:
initialize
在接口LoginModule
中- 参数:
subject
- 要验证的Subject
。callbackHandler
- 用于与最终用户通信的CallbackHandler
(例如,提示输入用户名和密码),可能是null
。sharedState
- 共享LoginModule
状态。options
- 在登录Configuration
中为此特定的LoginModule
指定的选项。
-
login
验证用户。获取 Keystore 别名和相关密码。从密钥库中检索别名的主体和凭据。
- 指定者:
login
在接口LoginModule
中- 返回:
-
在所有情况下都是正确的(不应忽略此
LoginModule
)。 - 抛出:
FailedLoginException
- 如果身份验证失败。LoginException
- 如果身份验证失败
-
commit
提交身份验证过程(第 2 阶段)的抽象方法。如果 LoginContext 的整体身份验证成功(相关的 REQUIRED、REQUISITE、SUFFICIENT 和 OPTIONAL LoginModules 成功),则调用此方法。
如果此 LoginModule 自己的身份验证尝试成功(通过检索
login
方法保存的私有状态进行检查),则此方法将X500Principal
关联到主题主体中别名凭据中第一个证书的主题可分辨名称,别名的证书路径在主体的公共凭据,以及X500PrivateCredential
,其证书是别名证书路径中的第一个证书,其私钥是主体私人凭据中别名的私钥。如果此 LoginModule 自己的身份验证尝试失败,则此方法会删除最初保存的所有状态。- 指定者:
commit
在接口LoginModule
中- 返回:
- 如果此 LoginModule 自己的登录和提交尝试成功,则为 true,否则为 false。
- 抛出:
LoginException
- 如果提交失败
-
abort
如果 LoginContext 的整体身份验证失败,则调用此方法。 (相关的 REQUIRED、REQUISITE、SUFFICIENT 和 OPTIONAL LoginModules 没有成功)。如果此 LoginModule 自己的身份验证尝试成功(通过检索
login
和commit
方法保存的私有状态进行检查),则此方法会清除最初保存的任何状态。如果加载的 KeyStore 的提供程序扩展了
java.security.AuthProvider
,则调用提供程序的logout
方法。- 指定者:
abort
在接口LoginModule
中- 返回:
- 如果此 LoginModule 自己的登录和/或提交尝试失败,则为 false,否则为 true。
- 抛出:
LoginException
- 如果中止失败。
-
logout
注销用户。此方法删除由
commit
方法添加的主体、公共凭据和私有凭据。如果加载的 KeyStore 的提供程序扩展了
java.security.AuthProvider
,则调用提供程序的logout
方法。- 指定者:
logout
在接口LoginModule
中- 返回:
-
在所有情况下都为真,因为不应忽略此
LoginModule
。 - 抛出:
LoginException
- 如果注销失败。
-