模块 java.base

类 PKIXCertPathChecker

java.lang.Object
java.security.cert.PKIXCertPathChecker
所有已实现的接口:
Cloneable , CertPathChecker
已知子类:
PKIXRevocationChecker

public abstract class PKIXCertPathChecker extends Object implements CertPathChecker , Cloneable
X509Certificate 执行一项或多项检查的抽象类。

可以创建 PKIXCertPathChecker 类的具体实现来扩展 PKIX 证书路径验证算法。例如,一个实现可以检查并处理证书路径中每个证书的关键私有扩展。

PKIXCertPathChecker 的实例作为参数使用 PKIXParametersPKIXBuilderParameters 类的 setCertPathCheckers addCertPathChecker 方法传递。对于由 PKIX CertPathValidatorCertPathBuilder 实现处理的每个证书,将依次调用 PKIXCertPathCheckercheck 方法中的每一个。

PKIXCertPathChecker 可能会在证书路径中的连续证书上被多次调用。具体子类应维护检查连续证书可能需要的任何内部状态。 init 方法用于初始化检查器的内部状态,以便可以检查新证书路径的证书。有状态的实现必须如有必要,覆盖 clone 方法,以允许 PKIX CertPathBuilder 有效地回溯并尝试其他路径。在这些情况下,CertPathBuilder 能够通过恢复克隆的 PKIXCertPathChecker s 来恢复之前的路径验证状态。

PKIXCertPathChecker 提供证书的顺序可以是正向(从目标到最受信任的 CA)或反向(从最受信任的 CA 到目标)。一个PKIXCertPathChecker实现必须支持反向检查(在反向证书出现时执行检查的能力)和可能支持前向检查(当在前向方向上提供证书时执行检查的能力)。 isForwardCheckingSupported 方法指示是否支持前向检查。

执行检查所需的附加输入参数可以通过此类具体实现的构造方法指定。

并发访问

除非另有说明,否则此类中定义的方法不是线程安全的。需要同时访问单个对象的多个线程应该在它们之间同步并提供必要的锁定。每个操作单独对象的多个线程不需要同步。

自从:
1.4
参见:
  • 构造方法总结

    构造方法
    修饰符
    构造方法
    描述
    protected
    默认构造方法。
  • 方法总结

    修饰符和类型
    方法
    描述
    void
    使用其内部状态对指定证书执行检查。
    abstract void
    check(Certificate cert, Collection<String> unresolvedCritExts)
    使用其内部状态对指定证书执行检查,并从表示未解析的关键扩展的指定 OID 字符串集合中删除它处理的任何关键扩展。
    返回此对象的克隆。
    abstract Set<String>
    返回此 PKIXCertPathChecker 支持(即识别、能够处理)的 X.509 证书扩展的不可变 Set,如果不支持扩展,则返回 null
    abstract void
    init(boolean forward)
    初始化此 PKIXCertPathChecker 的内部状态。
    abstract boolean
    指示是否支持前向检查。

    在类 java.lang.Object 中声明的方法

    equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • 构造方法详细信息

    • PKIXCertPathChecker

      protected PKIXCertPathChecker()
      默认构造方法。
  • 方法详情

    • init

      public abstract void init(boolean forward) throws CertPathValidatorException
      初始化此 PKIXCertPathChecker 的内部状态。

      forward 标志指定将证书传递给 check 方法的顺序(正向或反向)。一个PKIXCertPathChecker必须支持反向检查和可能支持前向检查。

      指定者:
      init 在接口 CertPathChecker
      参数:
      forward - 证书提交给 check 方法的顺序。如果 true ,证书从目标提交给最受信任的 CA(转发);如果 false ,从最受信任的 CA 到目标(反向)。
      抛出:
      CertPathValidatorException - 如果此 PKIXCertPathChecker 无法按指定顺序检查证书;如果前向标志为假,则永远不应抛出它,因为必须支持反向检查
    • isForwardCheckingSupported

      public abstract boolean isForwardCheckingSupported()
      指示是否支持前向检查。前向检查是指 PKIXCertPathChecker 在正向(从目标到最受信任的 CA)上将证书提交给 check 方法时执行其检查的能力。
      指定者:
      isForwardCheckingSupported 在接口 CertPathChecker
      返回:
      true 如果支持前向检查,false 否则
    • getSupportedExtensions

      public abstract Set <String > getSupportedExtensions()
      返回此 PKIXCertPathChecker 支持(即识别、能够处理)的 X.509 证书扩展的不可变 Set,如果不支持扩展,则返回 null

      该集合的每个元素都是一个 String,表示受支持的 X.509 扩展的对象标识符 (OID)。 OID 由一组由句点分隔的非负整数表示。

      PKIXCertPathChecker 可能能够处理的所有 X.509 证书扩展都应包含在该集中。

      返回:
      PKIXCertPathChecker 支持的 X.509 扩展 OID 的不可变 Set(格式为 String),如果不支持扩展,则为 null
    • check

      public abstract void check(Certificate  cert, Collection <String > unresolvedCritExts) throws CertPathValidatorException
      使用其内部状态对指定证书执行检查,并从表示未解析的关键扩展的指定 OID 字符串集合中删除它处理的任何关键扩展。证书按 init 方法指定的顺序显示。
      参数:
      cert - 要检查的 Certificate
      unresolvedCritExts - 一个 Collection 的 OID 字符串,表示当前未解析的关键扩展集
      抛出:
      CertPathValidatorException - 如果指定的证书没有通过检查
    • check

      public void check(Certificate  cert) throws CertPathValidatorException
      使用其内部状态对指定证书执行检查。证书按 init 方法指定的顺序显示。

      此实现调用 check(cert, java.util.Collections.<String>emptySet())

      指定者:
      check 在接口 CertPathChecker
      参数:
      cert - 要检查的 Certificate
      抛出:
      CertPathValidatorException - 如果指定的证书没有通过检查
    • clone

      public Object  clone()
      返回此对象的克隆。调用 Object.clone() 方法。如有必要,所有维护状态的子类都必须支持并覆盖此方法。
      重写:
      clone 在类 Object
      返回:
      这个PKIXCertPathChecker的副本
      参见: