java.lang.Object java.security.cert.PKIXCertPathChecker
对 X509Certificate
执行一种或多种检查的抽象类。
可创建 PKIXCertPathChecker
类的具体实现,以扩展 PKIX 证书路径验证算法。例如,一种实现可以检查并处理证书路径中每个证书的一种关键私有扩展。
PKIXCertPathChecker
实例可以用作 PKIXParameters
和 PKIXBuilderParameters
类中的 setCertPathCheckers
或 addCertPathChecker
方法的参数。然后为 PKIX CertPathValidator
或 CertPathBuilder
实现所处理的每个证书依次调用每个 PKIXCertPathChecker
的 check
方法。
可以在证书路径中的连续证书上多次调用 PKIXCertPathChecker
。应该由具体的子类维护那些检查连续证书所必需的所有内部状态。init
方法用于初始化该检查器的内部状态,这样就可以检查新证书路径中的各个证书。为了允许 PKIX CertPathBuilder
高效地回溯并尝试其他路径,如有必要,有状态的实现必须重写该 clone
方法。在这种情况下,通过恢复已复制的 PKIXCertPathChecker
,CertPathBuilder
能够恢复以前的路径验证状态。
呈现给 PKIXCertPathChecker
的证书顺序可以是正向的(从目标到最受信任的 CA),也可以是反向的(从最受信任的 CA 到目标)。PKIXCertPathChecker
实现必须支持反向检查(反向呈现证书时执行其检查的能力),并且可以支持正向检查(正向呈现证书时执行其检查的能力)。isForwardCheckingSupported
方法指示是否支持正向检查。
执行检查所需的其他输入参数可以通过此类具体实现的构造方法来指定。
并发访问
除非另行指定,否则此类中所定义的方法不是线程安全的。需要并发访问单个对象的多个线程应该在它们之间实现同步并提供所需的锁定。对于每个线程都操作一个不同对象的多个线程而言,无需实现同步。
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 |
构造方法详细信息 |
---|
protected PKIXCertPathChecker()
方法详细信息 |
---|
public abstract void init(boolean forward) throws CertPathValidatorException
PKIXCertPathChecker
的内部状态。
forward
标志指定向 check
方法传递的证书顺序(是正向还是反向的)。PKIXCertPathChecker
必须支持反向检查,并且可以支持正向检查。
forward
- 向
check
方法呈现证书的顺序。如果为
true
,则按照从目标到最受信任的 CA(正向)的顺序来呈现各个证书;如果为
false
,则按照从最受信任的 CA 到目标(反向)的顺序来呈现各个证书。
CertPathValidatorException
- 如果此
PKIXCertPathChecker
无法按指定的顺序检查各个证书;如果 forward 标志为 false,则永远不应抛出该异常,因为必须支持反向检查
public abstract boolean isForwardCheckingSupported()
check
方法时,
PKIXCertPathChecker
可执行其检查的能力。
true
;否则返回
false
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
public abstract void check(Certificate cert, Collection<String> unresolvedCritExts) throws CertPathValidatorException
init
方法所指定的顺序呈现各个证书。
cert
- 要检查的
Certificate
unresolvedCritExts
- 一个 OID 字符串
Collection
,表示当前未解析的关键扩展集
CertPathValidatorException
- 如果指定的证书无法通过检查
public Object clone()