java.security.cert

接口
异常
java.lang.Object
  继承者 java.security.cert.PKIXCertPathChecker
所有已实现的接口:
Cloneable

public abstract class PKIXCertPathChecker
     
extends Object
implements Cloneable

X509Certificate 执行一种或多种检查的抽象类。

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

PKIXCertPathChecker 实例可以用作 PKIXParametersPKIXBuilderParameters 类中的 setCertPathCheckersaddCertPathChecker 方法的参数。然后为 PKIX CertPathValidatorCertPathBuilder 实现所处理的每个证书依次调用每个 PKIXCertPathCheckercheck 方法。

可以在证书路径中的连续证书上多次调用 PKIXCertPathChecker。应该由具体的子类维护那些检查连续证书所必需的所有内部状态。init 方法用于初始化该检查器的内部状态,这样就可以检查新证书路径中的各个证书。为了允许 PKIX CertPathBuilder 高效地回溯并尝试其他路径,如有必要,有状态的实现必须重写该 clone 方法。在这种情况下,通过恢复已复制的 PKIXCertPathCheckerCertPathBuilder 能够恢复以前的路径验证状态。

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

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

并发访问

除非另行指定,否则此类中所定义的方法不是线程安全的。需要并发访问单个对象的多个线程应该在它们之间实现同步并提供所需的锁定。对于每个线程都操作一个不同对象的多个线程而言,无需实现同步。

从以下版本开始:
1.4
另请参见:
PKIXParameters, PKIXBuilderParameters

构造方法摘要
protected PKIXCertPathChecker()
          默认的构造方法。
 
方法摘要
abstract  void check(Certificate cert, Collection<String> unresolvedCritExts)
          使用其内部状态对指定的证书进行检查,并且将其处理的那些关键扩展从表示未解析的关键扩展的指定 OID 字符串集合中移除。
 Object clone()
          返回此对象的副本。
abstract  Set<String> getSupportedExtensions()
          返回一个此 PKIXCertPathChecker 支持(也就是识别,即能够处理)的 X.509 证书扩展的不可变的 Set,如果不支持这些扩展,则返回 null
abstract  void init(boolean forward)
          初始化此 PKIXCertPathChecker 的内部状态。
abstract  boolean isForwardCheckingSupported()
          指示是否支持正向检查。
 
从类 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 必须支持反向检查,并且可以支持正向检查。

参数:
forward - 向 check 方法呈现证书的顺序。如果为 true,则按照从目标到最受信任的 CA(正向)的顺序来呈现各个证书;如果为 false,则按照从最受信任的 CA 到目标(反向)的顺序来呈现各个证书。
抛出:
CertPathValidatorException - 如果此 PKIXCertPathChecker 无法按指定的顺序检查各个证书;如果 forward 标志为 false,则永远不应抛出该异常,因为必须支持反向检查

isForwardCheckingSupported

public abstract boolean isForwardCheckingSupported()
指示是否支持正向检查。正向检查是指以正向(从目标到最受信任的 CA)将各个证书呈现给 check 方法时, PKIXCertPathChecker 可执行其检查的能力。

返回:
如果支持正向检查,则返回 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(以 String 格式)的不可变 Set,如果不支持这些扩展,则返回 null

check

public abstract void check(Certificate cert,
                           Collection<String> unresolvedCritExts)
                    throws CertPathValidatorException
使用其内部状态对指定的证书进行检查,并且将其处理的那些关键扩展从表示未解析的关键扩展的指定 OID 字符串集合中移除。按照 init 方法所指定的顺序呈现各个证书。

参数:
cert - 要检查的 Certificate
unresolvedCritExts - 一个 OID 字符串 Collection,表示当前未解析的关键扩展集
抛出:
CertPathValidatorException - 如果指定的证书无法通过检查

clone

public Object clone()
返回此对象的副本。调用 Object.clone() 方法。如有必要,所有维护状态的子类必须支持并重写此方法。

覆盖:
Object 中的 clone
返回:
PKIXCertPathChecker 的副本
另请参见:
Cloneable