Certificate和CRL的类。
此类使用基于提供程序的架构。要创建一个CertStore,请调用其中一个静态的getInstance方法,传入所需的CertStore类型,任何适用的初始化参数,以及可选的所需提供程序的名称。
创建CertStore后,可以通过调用其getCertificates和getCRLs方法来检索Certificate和CRL。
与提供对私钥和受信任证书缓存访问的KeyStore不同,CertStore旨在提供对潜在庞大的未受信任证书和CRL存储库的访问。例如,CertStore的LDAP实现提供对使用LDAP协议和RFC服务属性中定义的模式存储在一个或多个目录中的证书和CRL的访问。
Java平台的每个实现都必须支持以下标准CertStore类型:
Collection
并发访问
CertStore对象的所有公共方法必须是线程安全的。也就是说,多个线程可以同时在单个CertStore对象(或多个对象)上调用这些方法而不会产生任何不良影响。这允许CertPathBuilder在搜索CRL的同时搜索进一步的证书,例如。
此类的静态方法也保证是线程安全的。多个线程可以同时调用此类中定义的静态方法而不会产生任何不良影响。
- 自版本:
- 1.4
-
Constructor Summary
ConstructorsModifierConstructorDescriptionprotectedCertStore(CertStoreSpi storeSpi, Provider provider, String type, CertStoreParameters params) 创建给定类型的CertStore对象,并将给定的提供程序实现(SPI对象)封装在其中。 -
Method Summary
Modifier and TypeMethodDescriptionfinal Collection<? extends Certificate> getCertificates(CertSelector selector) 返回与指定选择器匹配的Certificate的Collection。final CertStoreParameters返回用于初始化此CertStore的参数。final Collection<? extends CRL> getCRLs(CRLSelector selector) 返回与指定选择器匹配的CRL的Collection。static final String返回由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对象。final Provider返回此CertStore的提供程序。final StringgetType()返回此CertStore的类型。
-
Constructor Details
-
CertStore
protected CertStore(CertStoreSpi storeSpi, Provider provider, String type, CertStoreParameters params) 创建给定类型的CertStore对象,并将给定的提供程序实现(SPI对象)封装在其中。- 参数:
-
storeSpi- 提供程序实现 -
provider- 提供程序 -
type- 类型 -
params- 初始化参数(可以为null)
-
-
Method Details
-
getCertificates
public final Collection<? extends Certificate> getCertificates(CertSelector selector) throws CertStoreException 返回与指定选择器匹配的Certificate的Collection。如果没有匹配选择器的Certificate,则将返回一个空的Collection。对于某些
CertStore类型,生成的Collection可能不包含所有与选择器匹配的Certificate。例如,LDAPCertStore可能不会搜索目录中的所有条目。相反,它可能只搜索可能包含它正在寻找的Certificate的条目。一些
CertStore实现(特别是LDAPCertStore)可能会抛出CertStoreException,除非提供一个包含可用于查找证书的特定条件的非空CertSelector。发行者和/或主题名称特别有用。- 参数:
-
selector- 用于选择应返回哪些Certificate的CertSelector。如果支持,指定null以返回所有Certificate。 - 返回:
-
与指定选择器匹配的
Certificate的Collection(永不为null) - 抛出:
-
CertStoreException- 如果发生异常
-
getCRLs
返回与指定选择器匹配的CRL的Collection。如果没有匹配选择器的CRL,则将返回一个空的Collection。对于某些
CertStore类型,生成的Collection可能不包含所有与选择器匹配的CRL。例如,LDAPCertStore可能不会搜索目录中的所有条目。相反,它可能只搜索可能包含它正在寻找的CRL的条目。一些
CertStore实现(特别是LDAPCertStore)可能会抛出CertStoreException,除非提供一个包含可用于查找CRL的特定条件的非空CRLSelector。发行者名称和/或要检查的证书特别有用。- 参数:
-
selector- 用于选择应返回哪些CRL的CRLSelector。如果支持,指定null以返回所有CRL。 - 返回:
-
与指定选择器匹配的
CRL的Collection(永不为null) - 抛出:
-
CertStoreException- 如果发生异常
-
getInstance
public static CertStore getInstance(String type, CertStoreParameters params) throws InvalidAlgorithmParameterException, NoSuchAlgorithmException 返回实现指定CertStore类型并使用指定参数初始化的CertStore对象。此方法遍历已注册的安全提供程序列表,从最首选的提供程序开始。返回封装了支持指定类型的第一个提供程序的CertStoreSpi实现的新CertStore对象。
请注意,已注册提供程序的列表可以通过
Security.getProviders()方法检索。返回的
CertStore使用指定的CertStoreParameters进行初始化。所需的参数类型可能因不同类型的CertStore而异。请注意,指定的CertStoreParameters对象会被克隆。- 实现注意:
-
JDK参考实现另外使用
jdk.security.provider.preferredSecurity属性来确定指定算法的首选提供程序顺序。这可能与Security.getProviders()返回的提供程序顺序不同。 - 参数:
-
type- 请求的CertStore类型的名称。有关标准类型的信息,请参阅Java安全标准算法名称规范中的CertStore部分。 -
params- 初始化参数(可以为null)。 - 返回:
-
实现指定
CertStore类型的CertStore对象 - 抛出:
-
InvalidAlgorithmParameterException- 如果指定的初始化参数不适用于此CertStore -
NoSuchAlgorithmException- 如果没有Provider支持指定类型的CertStoreSpi实现 -
NullPointerException- 如果type为null - 参见:
-
getInstance
public static CertStore getInstance(String type, CertStoreParameters params, String provider) throws InvalidAlgorithmParameterException, NoSuchAlgorithmException, NoSuchProviderException 返回实现指定CertStore类型的CertStore对象。返回封装了指定提供程序的CertStoreSpi实现的新CertStore对象。指定的提供程序必须在安全提供程序列表中注册。
请注意,已注册提供程序的列表可以通过
Security.getProviders()方法检索。返回的
CertStore使用指定的CertStoreParameters进行初始化。所需的参数类型可能因不同类型的CertStore而异。请注意,指定的CertStoreParameters对象会被克隆。- 参数:
-
type- 请求的CertStore类型。有关标准类型的信息,请参阅Java安全标准算法名称规范中的CertStore部分。 -
params- 初始化参数(可以为null)。 -
provider- 提供者的名称。 - 返回:
-
实现指定类型的
CertStore对象 - 抛出:
-
IllegalArgumentException- 如果provider为null或空 -
InvalidAlgorithmParameterException- 如果指定的初始化参数不适用于此CertStore -
NoSuchAlgorithmException- 如果指定类型的CertStoreSpi实现不可从指定的提供者获取 -
NoSuchProviderException- 如果指定的提供者未在安全提供者列表中注册 -
NullPointerException- 如果type为null - 参见:
-
getInstance
public static CertStore getInstance(String type, CertStoreParameters params, Provider provider) throws NoSuchAlgorithmException, InvalidAlgorithmParameterException 返回一个实现指定CertStore类型的CertStore对象。返回一个封装了指定提供者对象中的CertStoreSpi实现的新CertStore对象。请注意,指定的提供者对象不必在提供者列表中注册。
返回的
CertStore将使用指定的CertStoreParameters进行初始化。所需的参数类型可能因不同类型的CertStore而异。请注意,指定的CertStoreParameters对象将被克隆。- 参数:
-
type- 请求的CertStore类型。有关标准类型的信息,请参阅Java安全标准算法名称规范中的CertStore部分。 -
params- 初始化参数(可以为null)。 -
provider- 提供者。 - 返回:
-
实现指定类型的
CertStore对象 - 抛出:
-
IllegalArgumentException- 如果provider为null -
InvalidAlgorithmParameterException- 如果指定的初始化参数不适用于此CertStore -
NoSuchAlgorithmException- 如果指定类型的CertStoreSpi实现不可从指定提供者获取 -
NullPointerException- 如果type为null - 参见:
-
getCertStoreParameters
返回用于初始化此CertStore的参数。请注意,在返回之前,CertStoreParameters对象将被克隆。- 返回:
-
用于初始化此
CertStore的参数(可以为null)
-
getType
返回此CertStore的类型。- 返回:
-
此
CertStore的类型
-
getProvider
返回此CertStore的提供者。- 返回:
-
此
CertStore的提供者
-
getDefaultType
返回由certstore.type安全属性指定的默认CertStore类型,如果不存在此类属性,则返回字符串"LDAP"。默认的
CertStore类型可供不希望在调用getInstance方法时使用硬编码类型,并希望在用户未指定自己的类型时提供默认CertStore类型的应用程序使用。可以通过将
certstore.type安全属性的值设置为所需的类型来更改默认的CertStore类型。- 返回:
-
由
certstore.type安全属性指定的默认CertStore类型,如果不存在此类属性,则返回字符串"LDAP"。 - 参见:
-