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

Class CertPathBuilder


  • public class CertPathBuilder
    extends Object
    用于构建证书路径的类(也称为证书链)。

    此类使用基于提供程序的体系结构。 要创建CertPathBuilder ,请调用其中一个静态getInstance方法,传入所需的CertPathBuilder算法名称, CertPathBuilder所需的提供程序名称。

    创建CertPathBuilder对象后,可以通过调用build方法并向其传递特定于算法的参数集来构建证书路径。 如果成功的话,结果(包括CertPath一个建)在实现一个对象返回CertPathBuilderResult接口。

    getRevocationChecker()方法允许应用程序指定用于由附加特定算法的参数和选项CertPathBuilder检查证书的撤销状态时。 这是一个演示如何与PKIX算法一起使用的示例:

      CertPathBuilder cpb = CertPathBuilder.getInstance("PKIX");
     PKIXRevocationChecker rc = (PKIXRevocationChecker)cpb.getRevocationChecker();
     rc.setOptions(EnumSet.of(Option.PREFER_CRLS));
     params.addCertPathChecker(rc);
     CertPathBuilderResult cpbr = cpb.build(params); 

    Java平台的每个实现都需要支持以下标准CertPathBuilder算法:

    • PKIX
    该算法在Java安全标准算法名称规范的CertPathBuilder section中描述。 请参阅实现的发行文档,以了解是否支持任何其他算法。

    并发访问

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

    但是,对于此类定义的非静态方法,情况并非如此。 除非特定提供程序另有说明,否则需要同时访问单个CertPathBuilder实例的线程应在它们之间进行同步并提供必要的锁定。 每个操作不同CertPathBuilder实例的多个线程无需同步。

    从以下版本开始:
    1.4
    另请参见:
    CertPath
    • 构造方法详细信息

      • CertPathBuilder

        protected CertPathBuilder​(CertPathBuilderSpi builderSpi,
                                  Provider provider,
                                  String algorithm)
        创建给定算法的 CertPathBuilder对象,并在其中封装给定的提供程序实现(SPI对象)。
        参数
        builderSpi - 提供程序实现
        provider - 提供者
        algorithm - 算法名称
    • 方法详细信息

      • getInstance

        public static CertPathBuilder getInstance​(String algorithm)
                                           throws NoSuchAlgorithmException
        返回实现指定算法的CertPathBuilder对象。

        此方法遍历已注册的安全提供程序列表,从最首选的提供程序开始。 将返回一个新的CertPathBuilder对象,该对象封装来自第一个支持指定算法的Provider的CertPathBuilderSpi实现。

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

        Implementation Note:
        JDK Reference Implementation另外使用jdk.security.provider.preferred Security属性来确定指定算法的首选提供程序顺序。 这可能与Security.getProviders()返回的提供商的顺序不同。
        参数
        algorithm - 请求的CertPathBuilder算法的名称。 有关标准算法名称的信息,请参阅Java Security Standard Algorithm Names Specification中的CertPathBuilder部分。
        结果
        实现指定算法的 CertPathBuilder对象
        异常
        NoSuchAlgorithmException - 如果没有 Provider支持指定算法的 CertPathBuilderSpi实现
        NullPointerException - 如果 algorithmnull
        另请参见:
        Provider
      • getProvider

        public final Provider getProvider()
        返回此 CertPathBuilder的提供者。
        结果
        CertPathBuilder的提供者
      • getAlgorithm

        public final String getAlgorithm()
        返回此 CertPathBuilder的算法的 CertPathBuilder
        结果
        这个 CertPathBuilder的算法的 CertPathBuilder
      • getDefaultType

        public static final String getDefaultType()
        返回certpathbuilder.type安全属性指定的默认值CertPathBuilder类型,如果不存在此类属性,则返回字符串“PKIX”。

        默认情况下, CertPathBuilder类型可以由不希望在调用其中一个getInstance方法时使用硬编码类型的应用程序使用,并且希望在用户未指定自己的类型时提供默认类型。

        默认CertPathBuilder类型可通过的值设置被改变certpathbuilder.type安全属性,以所希望的类型。

        结果
        certpathbuilder.type安全属性指定的默认值 CertPathBuilder ,如果不存在此类属性,则为字符串“PKIX”。
        另请参见:
        security properties
      • getRevocationChecker

        public final CertPathChecker getRevocationChecker()
        返回CertPathChecker ,封装的CertPathBuilderSpi实现用于检查证书的撤销状态。 PKIX实现返回PKIXRevocationChecker类型的PKIXRevocationChecker 每次调用此方法都会返回一个新实例CertPathChecker

        此方法的主要目的是允许调用者指定其他输入参数和特定于撤销检查的选项。 有关示例,请参阅类描述。

        结果
        CertPathChecker
        异常
        UnsupportedOperationException - 如果服务提供商不支持此方法
        从以下版本开始:
        1.8