- java.lang.Object
-
- com.sun.security.auth.module.KeyStoreLoginModule
-
- 实现的所有接口
-
LoginModule
public class KeyStoreLoginModule extends Object implements 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-pad),则此值应设置为“true”。 默认为“false”。 如果不能指定“true”keyStorePasswordURL和privateKeyPasswordURL。
-
-
构造方法摘要
构造方法 构造器 描述 KeyStoreLoginModule()
-
-
-
方法详细信息
-
initialize
public void initialize(Subject subject, CallbackHandler callbackHandler, Map<String,?> sharedState, Map<String,?> options)
初始化这个LoginModule
。- Specified by:
-
initialize
在界面LoginModule
- 参数
-
subject
- 经过身份验证的Subject
。 -
callbackHandler
- 用于与最终用户通信的CallbackHandler
(例如,提示输入用户名和密码),可能是null
。 -
sharedState
- 共享LoginModule
州。 -
options
- 为此特定LoginModule
登录Configuration
指定的选项。
-
login
public boolean login() throws LoginException
验证用户。获取密钥库别名和相关密码。 从Keystore中检索别名的主体和凭据。
- Specified by:
-
login
在界面LoginModule
- 结果
-
在所有情况下都是如此(不应忽略此
LoginModule
)。 - 异常
-
FailedLoginException
- 如果身份验证失败。 -
LoginException
- 如果身份验证失败
-
commit
public boolean commit() throws LoginException
提交认证过程的抽象方法(阶段2)。如果LoginContext的整体身份验证成功(相关的REQUIRED,REQUISITE,SUFFICIENT和OPTIONAL LoginModules成功),则调用此方法。
如果此LoginModule自己的身份验证尝试成功(通过检索
login
方法保存的私有状态进行检查),则此方法将X500Principal
与主题主体中别名凭据中第一个证书的主题可分辨名称相关联,该别名的证书路径为主题的公共凭据和X500PrivateCredential
其证书是别名证书路径中的第一个证书,其私钥是主题私有凭证中别名的私钥。 如果此LoginModule自己的身份验证尝试失败,则此方法将删除最初保存的任何状态。- Specified by:
-
commit
在界面LoginModule
- 结果
- 如果此LoginModule自己的登录和提交尝试成功,则返回true,否则返回false。
- 异常
-
LoginException
- 如果提交失败
-
abort
public boolean abort() throws LoginException
如果LoginContext的整体身份验证失败,则调用此方法。 (相关的必需,要求,充足和可选的LoginModule没有成功)。如果此LoginModule自己的身份验证尝试成功(通过检索
login
和commit
方法保存的私有状态进行检查),则此方法将清除最初保存的任何状态。如果加载的KeyStore的提供程序扩展为
java.security.AuthProvider
,则调用提供程序的logout
方法。- Specified by:
-
abort
在界面LoginModule
- 结果
- 如果此LoginModule自己的登录和/或提交尝试失败,则返回false,否则返回true。
- 异常
-
LoginException
- 如果中止失败。
-
logout
public boolean logout() throws LoginException
注销用户。此方法删除
commit
方法添加的Principals,公共凭据和私有凭据。如果加载的KeyStore的提供程序扩展为
java.security.AuthProvider
,则调用提供程序的logout
方法。- Specified by:
-
logout
在界面LoginModule
- 结果
-
在所有情况下都是如此,因为
LoginModule
不应该被忽略。 - 异常
-
LoginException
- if the logout fails.
-
-