JavaTM 2 Platform
Standard Ed. 5.0

java.security.cert
类 CertStore

java.lang.Object
  继承者 java.security.cert.CertStore

public class CertStore
extends Object

用于从存储库中检索 CertificateCRL 的类。

此类使用《Java Cryptography Architecture》中所描述的、基于提供程序的架构。要创建一个 CertStore,应调用某个静态 getInstance 方法,并传入所需的 CertStore 类型、所有适用的初始化参数以及可能需要的提供程序名称。

一旦创建了 CertStore,就可使用它来检索 CertificateCRL,方法是调用其 getCertificatesgetCRLs 方法。

CertStore 与 KeyStore 不同,后者提供对私钥和可信任的证书缓存的访问,而 CertStore 提供对不可信任证书和 CRL 存储库(可能很大)的访问。例如,CertStore 的 LDAP 实现使用 LDAP 协议和 RFC 服务属性中所定义的方案,提供了对存储在一个或多个目录中的证书和 CRL 的访问。有关标准 CertStore 类型的更多信息,请参见《Java Certification Path API Programmer's Guide》中的附录 A。

并发访问

所有 CertStore 对象的公共方法必须是线程安全的。也就是说,多个线程在单个 CertStore 对象(或多个对象)上并发调用这些方法而不会产生坏的影响。例如,这就允许 CertPathBuilder 搜索 CRL 的同时搜索其他的证书。

还应确保此类的静态方法是线程安全的。多个线程可以并发调用此类中所定义的静态方法,而不会产生坏的影响。

从以下版本开始:
1.4

构造方法摘要
protected CertStore(CertStoreSpi storeSpi, Provider provider, String type, CertStoreParameters params)
          创建一个给定类型的 CertStore 对象,并在其中封装给定的提供程序实现(SPI 对象)。
 
方法摘要
 Collection<? extends Certificate> getCertificates(CertSelector selector)
          返回与指定选择器匹配的 CertificateCollection
 CertStoreParameters getCertStoreParameters()
          返回初始化此 CertStore 所用的参数。
 Collection<? extends CRL> getCRLs(CRLSelector selector)
          返回与指定选择器匹配的 CRLCollection
static String getDefaultType()
          返回 Java 安全属性文件中所指定的默认 CertStore 类型,如果没有此属性,则返回字符串 "LDAP"。
static CertStore getInstance(String type, CertStoreParameters params)
          返回一个实现了指定 CertStore 类型并已使用指定参数初始化的 CertStore 对象。
static CertStore getInstance(String type, CertStoreParameters params, Provider provider)
          返回一个实现指定 CertStore 类型(由指定的提供程序提供并使用指定参数初始化)的 CertStore 对象。
static CertStore getInstance(String type, CertStoreParameters params, String provider)
          返回一个实现指定 CertStore 类型(由指定的提供程序提供)并使用指定参数初始化的 CertStore 对象。
 Provider getProvider()
          返回此 CertStore 的提供程序。
 String getType()
          返回此 CertStore 的类型。
 
从类 java.lang.Object 继承的方法
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

构造方法详细信息

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
返回与指定选择器匹配的 CertificateCollection。如果没有与此选择器匹配的 Certificate,则返回一个空 Collection

对于某些 CertStore 类型,得到的 Collection 可能不包含与该选择器匹配的所有 Certificate。例如,LDAP CertStore 可能不搜索目录中的所有项。相反,它可能只搜索那些很可能包含正要查找的 Certificate 的项。

如果未提供一个包括了用于查找证书的具体标准的非 null CertSelector,则某些 CertStore 实现(特别是 LDAP CertStore)可能抛出 CertStoreException。发布方和/或主体名称是特别有用的标准。

参数:
selector - 用于选择应该返回哪些 CertificateCertSelector。指定 null 表示返回所有的 Certificate(如果受支持)。
返回:
与指定选择器匹配的 CertificateCollection(不会为 null
抛出:
CertStoreException - 如果出现异常

getCRLs

public final Collection<? extends CRL> getCRLs(CRLSelector selector)
                                        throws CertStoreException
返回与指定选择器匹配的 CRLCollection。如果没有与此选择器匹配的 CRL,则返回一个空 Collection

对于某些 CertStore 类型,得到的 Collection 可能不包含与该选择器匹配的所有 CRL。例如,LDAP CertStore 可能不搜索目录中的所有项。相反,它可能只搜索那些很可能包含正要查找的 CRL 的项。

如果未提供一个包括了用于查找 CRL 的具体标准的非 null CRLSelector,则某些 CertStore 实现(特别是 LDAP CertStore)可能抛出 CertStoreException。发布方名称和/或要检查的证书特别有用。

参数:
selector - 用于选择应该返回哪些 CRLCRLSelector。指定 null 表示返回所有的 CRL(如果受支持)。
返回:
与指定选择器匹配的 CRLCollection(不会为 null
抛出:
CertStoreException - 如果出现异常

getInstance

public static CertStore getInstance(String type,
                                    CertStoreParameters params)
                             throws InvalidAlgorithmParameterException,
                                    NoSuchAlgorithmException
返回一个实现了指定 CertStore 类型并已使用指定参数初始化的 CertStore 对象。

如果默认提供程序包提供了指定 CertStore 类型的实现,则返回包含该实现的 CertStore 实例。如果默认包中不存在所请求的类型,则搜索其他包。

使用指定的 CertStoreParameters 初始化返回的 CertStore。不同类型的 CertStore 所需的参数类型可能有所不同。注意,指定的 CertStoreParameters 对象将被复制。

参数:
type - 所请求的 CertStore 类型的名称
params - 初始化参数(可以为 null
返回:
实现了指定 CertStore 类型的 CertStore 对象
抛出:
NoSuchAlgorithmException - 如果默认提供程序包或搜索过的所有其他提供程序包中不存在所请求的类型
InvalidAlgorithmParameterException - 如果指定的初始化参数不适合此 CertStore

getInstance

public static CertStore getInstance(String type,
                                    CertStoreParameters params,
                                    String provider)
                             throws InvalidAlgorithmParameterException,
                                    NoSuchAlgorithmException,
                                    NoSuchProviderException
返回一个实现指定 CertStore 类型(由指定的提供程序提供)并使用指定参数初始化的 CertStore 对象。

使用指定的 CertStoreParameters 初始化返回的 CertStore。不同类型的 CertStore 所需的参数类型有所不同。注意,指定的 CertStoreParameters 对象将被复制。

参数:
type - 所请求的 CertStore 类型
params - 初始化参数(可以为 null
provider - 提供程序的名称
返回:
实现指定类型(由指定的提供程序提供)的 CertStore 对象
抛出:
NoSuchAlgorithmException - 如果指定的提供程序不提供所请求的类型
InvalidAlgorithmParameterException - 如果指定的初始化参数不适合此 CertStore
NoSuchProviderException - 如果尚未配置提供程序
IllegalArgumentException - 如果 provider 为 null

getInstance

public static CertStore getInstance(String type,
                                    CertStoreParameters params,
                                    Provider provider)
                             throws NoSuchAlgorithmException,
                                    InvalidAlgorithmParameterException
返回一个实现指定 CertStore 类型(由指定的提供程序提供并使用指定参数初始化)的 CertStore 对象。注:不必注册该 provider

使用指定的 CertStoreParameters 初始化返回的 CertStore。不同类型的 CertStore 所需的参数类型有所不同。注意,指定的 CertStoreParameters 对象将被复制。

参数:
type - 所请求的 CertStore 类型
params - 初始化参数(可以为 null
provider - 提供程序
返回:
实现指定类型(由指定的提供程序提供)的 CertStore 对象
抛出:
NoSuchAlgorithmException - 如果指定的提供程序不提供所请求的类型
InvalidAlgorithmParameterException - 如果指定的初始化参数不适合此 CertStore
IllegalArgumentException - 如果 provider 为 null

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()
返回 Java 安全属性文件中所指定的默认 CertStore 类型,如果没有此属性,则返回字符串 "LDAP"。Java 安全属性文件位于指定的 <JAVA_HOME>/lib/security/java.security 文件中,其中 <JAVA_HOME> 是指安装 JDK 的目录。

对于调用某个 getInstance 方法时不希望使用硬编码 CertStore 类型,以及在用户未指定所用 CertStore 类型的情况下希望提供默认 CertStore 类型的应用程序而言,可以使用默认的 CertStore 类型。

通过将 "certstore.type" 安全属性(在 Java 安全属性文件中)的值设置为所需的类型即可更改默认的 CertStore 类型。

返回:
Java 安全属性文件中所指定的默认 CertStore 类型,如果没有此属性,则返回字符串 "LDAP"。

JavaTM 2 Platform
Standard Ed. 5.0

提交错误或意见
有关更多的 API 参考资料和开发人员文档,请参阅 Java 2 SDK SE 开发人员文档。该文档包含更详细的、面向开发人员的描述,以及总体概述、术语定义、使用技巧和工作代码示例。

版权所有 2004 Sun Microsystems, Inc. 保留所有权利。 请遵守许可证条款。另请参阅文档重新分发政策