- java.lang.Object
-
- java.security.cert.CertStore
-
public class CertStore extends Object
用于从存储库中检索Certificate
和CRL
的类。此类使用基于提供程序的体系结构。 要创建
CertStore
,请调用其中一个静态getInstance
方法,传入所需的类型CertStore
,任何适用的初始化参数以及可选的所需提供程序的名称。一旦
CertStore
已经创建,它可以被用来获取Certificate
S和CRL
通过调用以SgetCertificates
种getCRLs
方法。与提供对私钥和可信证书缓存的访问的
KeyStore
不同,CertStore
旨在提供对不受信任的证书和CRL的潜在庞大存储库的访问。 例如,CertStore
的LDAP实现提供了使用LDAP协议和RFC服务属性中定义的模式访问存储在一个或多个目录中的证书和CRL。Java平台的每个实现都需要支持以下标准
CertStore
类型:-
Collection
并发访问
CertStore
对象的所有公共方法必须是线程安全的。 也就是说,多个线程可以同时在单个CertStore
对象(或多个)上调用这些方法,而不会产生任何不良影响。 例如,这允许CertPathBuilder
搜索CRL,同时搜索更多证书。此类的静态方法也保证是线程安全的。 多个线程可以同时调用此类中定义的静态方法,而不会产生任何不良影响。
- 从以下版本开始:
- 1.4
-
-
-
构造方法摘要
构造方法 变量 构造器 描述 protected
CertStore(CertStoreSpi storeSpi, Provider provider, String type, CertStoreParameters params)
创建给定类型的CertStore
对象,并在其中封装给定的提供程序实现(SPI对象)。
-
方法摘要
所有方法 静态方法 实例方法 具体的方法 变量和类型 方法 描述 Collection<? extends Certificate>
getCertificates(CertSelector selector)
返回与指定选择器匹配的Collection
(Certificate
。CertStoreParameters
getCertStoreParameters()
返回用于初始化此CertStore
的参数。Collection<? extends CRL>
getCRLs(CRLSelector selector)
返回与指定选择器匹配的Collection
,其中CRL
。static String
getDefaultType()
返回由certstore.type
安全属性指定的缺省值CertStore
类型,如果不存在此类属性,则返回字符串“LDAP”。static CertStore
getInstance(String type, CertStoreParameters params)
返回实现指定的CertStore
类型的CertStore
对象,并使用指定的参数进行初始化。static CertStore
getInstance(String type, CertStoreParameters params, String provider)
返回实现指定的CertStore
类型的CertStore
对象。static CertStore
getInstance(String type, CertStoreParameters params, Provider provider)
返回实现指定的CertStore
类型的CertStore
对象。Provider
getProvider()
返回此CertStore
的提供者。String
getType()
返回此CertStore
的类型。
-
-
-
构造方法详细信息
-
CertStore
protected CertStore(CertStoreSpi storeSpi, Provider provider, String type, CertStoreParameters params)
创建给定类型的CertStore
对象,并在其中封装给定的提供程序实现(SPI对象)。- 参数
-
storeSpi
- 提供程序实现 -
provider
- 提供者 -
type
- 类型 -
params
- 初始化参数(可能是null
)
-
-
方法详细信息
-
getCertificates
public final Collection<? extends Certificate> getCertificates(CertSelector selector) throws CertStoreException
返回Collection
,其中Certificate
与指定的选择器匹配。 如果没有Certificate
与选择器匹配,则返回空Collection
。对于某些
CertStore
类型,生成的Collection
可能不包含与选择器匹配的所有Certificate
。 例如,LDAPCertStore
可能无法搜索目录中的所有条目。 相反,它可能只搜索可能包含它正在寻找的Certificate
的条目。某些
CertStore
实现(尤其是LDAPCertStore
)可能会抛出CertStoreException
除非提供的非空CertSelector
包含可用于查找证书的特定条件。 发行人和/或主题名称是特别有用的标准。- 参数
-
selector
-一个CertSelector
用来选择Certificate
应该返回。 指定null
以返回所有Certificate
(如果支持)。 - 结果
-
Collection
ofCertificate
s与指定的选择器匹配(从不null
) - 异常
-
CertStoreException
- 如果发生异常
-
getCRLs
public final Collection<? extends CRL> getCRLs(CRLSelector selector) throws CertStoreException
返回Collection
的CRL
s与指定的选择器匹配。 如果没有CRL
与选择器匹配,则返回空Collection
。对于某些
CertStore
类型,生成的Collection
可能不包含与选择器匹配的所有CRL
。 例如,LDAPCertStore
可能无法搜索目录中的所有条目。 相反,它可能只搜索可能包含它正在寻找的CRL
的条目。除非提供包含可用于查找CRL的特定条件的非null
CRLSelector
否则某些CertStore
实现(尤其是LDAPCertStore
)可能会抛出CertStoreException
。 颁发者名称和/或要检查的证书特别有用。- 参数
-
selector
- ACRLSelector
用于选择应返回的CRL
s。 指定null
以返回所有CRL
(如果支持)。 - 结果
-
甲
Collection
的CRL
指定选择器匹配的S(从未null
) - 异常
-
CertStoreException
- 如果发生异常
-
getInstance
public static CertStore getInstance(String type, CertStoreParameters params) throws InvalidAlgorithmParameterException, NoSuchAlgorithmException
返回实现指定的CertStore
类型的CertStore
对象,并使用指定的参数进行初始化。此方法遍历已注册的安全提供程序列表,从最首选的提供程序开始。 将返回从第一个支持指定类型的Provider封装CertStoreSpi实现的新CertStore对象。
请注意,可以通过
Security.getProviders()
方法检索已注册提供商的列表。返回的
CertStore
使用指定的CertStoreParameters
初始化。 所需参数的类型可能因不同类型的CertStore
而异。 请注意,克隆了指定的CertStoreParameters
对象。- Implementation Note:
-
JDK Reference Implementation还使用
jdk.security.provider.preferred
Security
属性来确定指定算法的首选提供程序顺序。 这可能与Security.getProviders()
返回的提供商的顺序不同。 - 参数
-
type
- 请求的CertStore
类型的名称。 有关标准类型的信息,请参见Java Security Standard Algorithm Names Specification中的CertStore部分。 -
params
- 初始化参数(可以是null
)。 - 结果
-
实现指定的
CertStore
类型的CertStore
对象 - 异常
-
InvalidAlgorithmParameterException
- 如果指定的初始化参数不适合此CertStore
-
NoSuchAlgorithmException
- 如果没有Provider
支持指定类型的CertStoreSpi
实现 -
NullPointerException
- 如果type
是null
- 另请参见:
-
Provider
-
getInstance
public static CertStore getInstance(String type, CertStoreParameters params, String provider) throws InvalidAlgorithmParameterException, NoSuchAlgorithmException, NoSuchProviderException
返回实现指定的CertStore
类型的CertStore
对象。将返回一个新的CertStore对象,该对象封装了指定提供程序的CertStoreSpi实现。 必须在安全提供程序列表中注册指定的提供程序。
请注意,可以通过
Security.getProviders()
方法检索已注册提供商的列表。返回的
CertStore
使用指定的CertStoreParameters
初始化。 所需参数的类型可能因不同类型的CertStore
而异。 请注意,克隆了指定的CertStoreParameters
对象。- 参数
-
type
- 请求的CertStore
类型。 有关标准类型的信息,请参阅Java Security Standard Algorithm Names Specification中的CertStore部分。 -
params
- 初始化参数(可以是null
)。 -
provider
- 提供者的名称。 - 结果
-
实现指定类型的
CertStore
对象 - 异常
-
IllegalArgumentException
- 如果provider
是null
或为空 -
InvalidAlgorithmParameterException
- 如果指定的初始化参数不适合此CertStore
-
NoSuchAlgorithmException
- 如果指定提供程序的指定类型的CertStoreSpi
实现不可用 -
NoSuchProviderException
- 如果指定的提供程序未在安全提供程序列表中注册 -
NullPointerException
- 如果type
是null
- 另请参见:
-
Provider
-
getInstance
public static CertStore getInstance(String type, CertStoreParameters params, Provider provider) throws NoSuchAlgorithmException, InvalidAlgorithmParameterException
返回实现指定的CertStore
类型的CertStore
对象。将返回一个新的CertStore对象,该对象封装来自指定Provider对象的CertStoreSpi实现。 请注意,指定的Provider对象不必在提供程序列表中注册。
返回的
CertStore
使用指定的CertStoreParameters
初始化。 所需参数的类型可能因不同类型的CertStore
而异。 请注意,克隆了指定的CertStoreParameters
对象。- 参数
-
type
- 请求的CertStore
类型。 有关标准类型的信息,请参见Java Security Standard Algorithm Names Specification中的CertStore部分。 -
params
- 初始化参数(可以是null
)。 -
provider
- 提供者。 - 结果
-
实现指定类型的
CertStore
对象 - 异常
-
IllegalArgumentException
- 如果provider
为空 -
InvalidAlgorithmParameterException
- 如果指定的初始化参数不适合此CertStore
-
NoSuchAlgorithmException
- 如果指定的Provider对象中没有指定类型的CertStoreSpi
实现 -
NullPointerException
- 如果type
是null
- 另请参见:
-
Provider
-
getCertStoreParameters
public final CertStoreParameters getCertStoreParameters()
返回用于初始化此CertStore
的参数。 请注意,CertStoreParameters
对象在返回之前进行克隆。- 结果
-
用于初始化此
CertStore
的参数(可能是null
)
-
getType
public final String getType()
返回此CertStore
的类型。- 结果
-
这个类型的
CertStore
-
getProvider
public final Provider getProvider()
返回此CertStore
的提供者。- 结果
-
这个
CertStore
的提供者
-
getDefaultType
public static final String getDefaultType()
返回由certstore.type
安全属性指定的缺省值CertStore
类型,如果不存在此类属性,则返回字符串“LDAP”。在调用
getInstance
方法之一时,不希望使用硬编码类型的应用程序可以使用默认的CertStore
类型,并且如果用户未指定自己的类型,则希望提供默认的CertStore
类型。可以通过将
certstore.type
安全属性的值设置为所需类型来更改默认的CertStore
类型。- 结果
-
默认
CertStore
类型,由certstore.type
安全属性指定,如果不存在此类属性,则为字符串“LDAP”。 - 另请参见:
-
security properties
-
-