- java.lang.Object
-
- java.security.cert.CertStore
-
public class CertStore extends Object
用于从存储库中检索Certificate和CRL的类。此类使用基于提供程序的体系结构。 要创建
CertStore,请调用其中一个静态getInstance方法,传入所需的类型CertStore,任何适用的初始化参数以及可选的所需提供程序的名称。一旦
CertStore已经创建,它可以被用来获取CertificateS和CRL通过调用以SgetCertificates种getCRLs方法。与提供对私钥和可信证书缓存的访问的
KeyStore不同,CertStore旨在提供对不受信任的证书和CRL的潜在庞大存储库的访问。 例如,CertStore的LDAP实现提供了使用LDAP协议和RFC服务属性中定义的模式访问存储在一个或多个目录中的证书和CRL。Java平台的每个实现都需要支持以下标准
CertStore类型:-
Collection
并发访问
CertStore对象的所有公共方法必须是线程安全的。 也就是说,多个线程可以同时在单个CertStore对象(或多个)上调用这些方法,而不会产生任何不良影响。 例如,这允许CertPathBuilder搜索CRL,同时搜索更多证书。此类的静态方法也保证是线程安全的。 多个线程可以同时调用此类中定义的静态方法,而不会产生任何不良影响。
- 从以下版本开始:
- 1.4
-
-
-
构造方法摘要
构造方法 变量 构造器 描述 protectedCertStore(CertStoreSpi storeSpi, Provider provider, String type, CertStoreParameters params)创建给定类型的CertStore对象,并在其中封装给定的提供程序实现(SPI对象)。
-
方法摘要
所有方法 静态方法 实例方法 具体的方法 变量和类型 方法 描述 Collection<? extends Certificate>getCertificates(CertSelector selector)返回与指定选择器匹配的Collection(Certificate。CertStoreParametersgetCertStoreParameters()返回用于初始化此CertStore的参数。Collection<? extends CRL>getCRLs(CRLSelector selector)返回与指定选择器匹配的Collection,其中CRL。static StringgetDefaultType()返回由certstore.type安全属性指定的缺省值CertStore类型,如果不存在此类属性,则返回字符串“LDAP”。static CertStoregetInstance(String type, CertStoreParameters params)返回实现指定的CertStore类型的CertStore对象,并使用指定的参数进行初始化。static CertStoregetInstance(String type, CertStoreParameters params, String provider)返回实现指定的CertStore类型的CertStore对象。static CertStoregetInstance(String type, CertStoreParameters params, Provider provider)返回实现指定的CertStore类型的CertStore对象。ProvidergetProvider()返回此CertStore的提供者。StringgetType()返回此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(如果支持)。 - 结果
-
CollectionofCertificates与指定的选择器匹配(从不null) - 异常
-
CertStoreException- 如果发生异常
-
getCRLs
public final Collection<? extends CRL> getCRLs(CRLSelector selector) throws CertStoreException
返回Collection的CRLs与指定的选择器匹配。 如果没有CRL与选择器匹配,则返回空Collection。对于某些
CertStore类型,生成的Collection可能不包含与选择器匹配的所有CRL。 例如,LDAPCertStore可能无法搜索目录中的所有条目。 相反,它可能只搜索可能包含它正在寻找的CRL的条目。除非提供包含可用于查找CRL的特定条件的非null
CRLSelector否则某些CertStore实现(尤其是LDAPCertStore)可能会抛出CertStoreException。 颁发者名称和/或要检查的证书特别有用。- 参数
-
selector- ACRLSelector用于选择应返回的CRLs。 指定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.preferredSecurity属性来确定指定算法的首选提供程序顺序。 这可能与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
-
-