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

Class PKIXCertPathChecker

  • 实现的所有接口
    CloneableCertPathChecker
    已知直接子类:
    PKIXRevocationChecker

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

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

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

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

    证书提交给PKIXCertPathChecker可以是正向(从目标到最受信任的CA),也可以是反向(从最受信任的CA到目标)。 PKIXCertPathChecker实现必须支持反向检查(在向反方向提供证书时执行检查的能力)并且可以支持前向检查(当向前方向提供证书时执行检查的能力)。 isForwardCheckingSupported方法指示是否支持前向检查。

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

    并发访问

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

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

      • PKIXCertPathChecker

        protected PKIXCertPathChecker()
        默认构造函数。
    • 方法详细信息

      • init

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

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

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

        public abstract boolean isForwardCheckingSupported()
        指示是否支持前向检查。 转发检查是指当证书以正向(从目标到最受信任的CA)呈现给check方法时, PKIXCertPathChecker执行检查的能力。
        Specified by:
        isForwardCheckingSupported in interface CertPathChecker
        结果
        true如果正向检查支持, false否则
      • getSupportedExtensions

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

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

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

        结果
        一个不可变的 Set X.509扩展的OID(在 String此支持的格式) PKIXCertPathChecker ,或 null如果没有扩展支持
      • check

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

        public Object clone()
        返回此对象的副本。 调用Object.clone()方法。 如有必要,所有维护状态的子类必须支持并覆盖此方法。
        重写:
        clone在课程 Object
        结果
        PKIXCertPathChecker的副本
        另请参见:
        Cloneable