Module java.base

Class CertStore

java.lang.Object
java.security.cert.CertStore

public class CertStore extends Object
一个用于从存储库中检索CertificateCRL的类。

此类使用基于提供程序的架构。要创建一个CertStore,请调用其中一个静态的getInstance方法,传入所需的CertStore类型,任何适用的初始化参数,以及可选的所需提供程序的名称。

创建CertStore后,可以通过调用其getCertificatesgetCRLs方法来检索CertificateCRL

与提供对私钥和受信任证书缓存访问的KeyStore不同,CertStore旨在提供对潜在庞大的未受信任证书和CRL存储库的访问。例如,CertStore的LDAP实现提供对使用LDAP协议和RFC服务属性中定义的模式存储在一个或多个目录中的证书和CRL的访问。

Java平台的每个实现都必须支持以下标准CertStore类型:

  • Collection
此类型在Java安全标准算法名称规范的CertStore部分中有描述。请查阅您的实现的发布文档,以查看是否支持其他类型。

并发访问

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

此类的静态方法也保证是线程安全的。多个线程可以同时调用此类中定义的静态方法而不会产生任何不良影响。

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

      对于某些CertStore类型,生成的Collection可能不包含所有与选择器匹配的Certificate。例如,LDAP CertStore可能不会搜索目录中的所有条目。相反,它可能只搜索可能包含它正在寻找的Certificate的条目。

      一些CertStore实现(特别是LDAP CertStore)可能会抛出CertStoreException,除非提供一个包含可用于查找证书的特定条件的非空CertSelector。发行者和/或主题名称特别有用。

      参数:
      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的条目。

      一些CertStore实现(特别是LDAP CertStore)可能会抛出CertStoreException,除非提供一个包含可用于查找CRL的特定条件的非空CRLSelector。发行者名称和/或要检查的证书特别有用。

      参数:
      selector - 用于选择应返回哪些CRLCRLSelector。如果支持,指定null以返回所有CRL
      返回:
      与指定选择器匹配的CRLCollection(永不为null
      抛出:
      CertStoreException - 如果发生异常
    • getInstance

      返回实现指定CertStore类型并使用指定参数初始化的CertStore对象。

      此方法遍历已注册的安全提供程序列表,从最首选的提供程序开始。返回封装了支持指定类型的第一个提供程序的CertStoreSpi实现的新CertStore对象。

      请注意,已注册提供程序的列表可以通过Security.getProviders()方法检索。

      返回的CertStore使用指定的CertStoreParameters进行初始化。所需的参数类型可能因不同类型的CertStore而异。请注意,指定的CertStoreParameters对象会被克隆。

      实现注意:
      JDK参考实现另外使用jdk.security.provider.preferred Security属性来确定指定算法的首选提供程序顺序。这可能与Security.getProviders()返回的提供程序顺序不同。
      参数:
      type - 请求的CertStore类型的名称。有关标准类型的信息,请参阅Java安全标准算法名称规范中的CertStore部分。
      params - 初始化参数(可以为null)。
      返回:
      实现指定CertStore类型的CertStore对象
      抛出:
      InvalidAlgorithmParameterException - 如果指定的初始化参数不适用于此CertStore
      NoSuchAlgorithmException - 如果没有Provider支持指定类型的CertStoreSpi实现
      NullPointerException - 如果typenull
      参见:
    • getInstance

      返回实现指定CertStore类型的CertStore对象。

      返回封装了指定提供程序的CertStoreSpi实现的新CertStore对象。指定的提供程序必须在安全提供程序列表中注册。

      请注意,已注册提供程序的列表可以通过Security.getProviders()方法检索。

      返回的CertStore使用指定的CertStoreParameters进行初始化。所需的参数类型可能因不同类型的CertStore而异。请注意,指定的CertStoreParameters对象会被克隆。

      参数:
      type - 请求的CertStore类型。有关标准类型的信息,请参阅Java安全标准算法名称规范中的CertStore部分。
      params - 初始化参数(可以为null)。
      provider - 提供者的名称。
      返回:
      实现指定类型的CertStore对象
      抛出:
      IllegalArgumentException - 如果providernull或空
      InvalidAlgorithmParameterException - 如果指定的初始化参数不适用于此CertStore
      NoSuchAlgorithmException - 如果指定类型的CertStoreSpi实现不可从指定的提供者获取
      NoSuchProviderException - 如果指定的提供者未在安全提供者列表中注册
      NullPointerException - 如果typenull
      参见:
    • 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 - 如果typenull
      参见:
    • 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"。

      默认的CertStore类型可供不希望在调用getInstance方法时使用硬编码类型,并希望在用户未指定自己的类型时提供默认CertStore类型的应用程序使用。

      可以通过将certstore.type安全属性的值设置为所需的类型来更改默认的CertStore类型。

      返回:
      certstore.type安全属性指定的默认CertStore类型,如果不存在此类属性,则返回字符串"LDAP"。
      参见: