模块  java.base
软件包  java.security.cert

Class CertStore


  • public class CertStoreextends Object
    用于从存储库中检索CertificateCRL的类。

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

    一旦CertStore已经创建,它可以被用来获取Certificate S和CRL通过调用以S getCertificatesgetCRLs方法。

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

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

    • Collection
    Java安全标准算法名称规范的CertStore section中描述了此类型。 请参阅实施的发行文档,以了解是否支持任何其他类型。

    并发访问

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

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

    从以下版本开始:
    1.4
    • 构造方法详细信息

      • 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 例如,LDAP CertStore可能无法搜索目录中的所有条目。 相反,它可能只搜索可能包含它正在寻找的Certificate的条目。

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

        参数
        selector -一个CertSelector用来选择Certificate应该返回。 指定null以返回所有Certificate (如果支持)。
        结果
        Collection of Certificate s与指定的选择器匹配(从不 null
        异常
        CertStoreException - 如果发生异常
      • getCRLs

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

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

        除非提供包含可用于查找CRL的特定条件的非null CRLSelector否则某些CertStore实现(尤其是LDAP CertStore )可能会抛出CertStoreException 颁发者名称和/或要检查的证书特别有用。

        参数
        selector - A CRLSelector用于选择应返回的CRL s。 指定null以返回所有CRL (如果支持)。
        结果
        CollectionCRL指定选择器匹配的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 - 如果 typenull
        另请参见:
        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