- java.lang.Object
-
- java.security.cert.PKIXCertPathChecker
-
- 实现的所有接口
-
Cloneable
,CertPathChecker
- 已知直接子类:
-
PKIXRevocationChecker
public abstract class PKIXCertPathChecker extends Object implements CertPathChecker, Cloneable
对X509Certificate
执行一次或多次检查的抽象类。可以创建
PKIXCertPathChecker
类的具体实现来扩展PKIX认证路径验证算法。 例如,实现可以检查并处理证书路径中的每个证书的关键私有扩展。使用
PKIXParameters
和PKIXBuilderParameters
类的setCertPathCheckers
或addCertPathChecker
方法将实例PKIXCertPathChecker
作为参数传递。 对于由PKIXCertPathValidator
或CertPathBuilder
实现处理的每个证书,将依次调用每个PKIXCertPathChecker
的check
方法。可以在证书路径中的连续证书上多次调用
PKIXCertPathChecker
。 具体的子类应该保持检查连续证书所必需的任何内部状态。init
方法用于初始化检查器的内部状态,以便可以检查新证书路径的证书。 如有必要,有状态实现必须覆盖clone
方法,以便允许PKIXCertPathBuilder
有效地回溯并尝试其他路径。 在这些情况下,CertPathBuilder
能够通过恢复克隆的PKIXCertPathChecker
来恢复先前的路径验证状态。证书提交给
PKIXCertPathChecker
可以是正向(从目标到最受信任的CA),也可以是反向(从最受信任的CA到目标)。PKIXCertPathChecker
实现必须支持反向检查(在向反方向提供证书时执行检查的能力)并且可以支持前向检查(当向前方向提供证书时执行检查的能力)。isForwardCheckingSupported
方法指示是否支持前向检查。执行检查所需的附加输入参数可以通过该类的具体实现的构造者来指定。
并发访问
除非另有说明,否则此类中定义的方法不是线程安全的。 需要同时访问单个对象的多个线程应在它们之间进行同步并提供必要的锁定。 每个操作单独对象的多个线程不需要同步。
- 从以下版本开始:
- 1.4
- 另请参见:
-
PKIXParameters
,PKIXBuilderParameters
-
-
构造方法摘要
构造方法 变量 构造器 描述 protected
PKIXCertPathChecker()
默认构造函数。
-
方法摘要
所有方法 实例方法 抽象方法 具体的方法 变量和类型 方法 描述 void
check(Certificate cert)
使用其内部状态对指定证书执行检查。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()
指示是否支持前向检查。
-
-
-
方法详细信息
-
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 interfaceCertPathChecker
- 结果
-
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
- 如果指定的证书未通过检查
-
check
public void check(Certificate cert) throws CertPathValidatorException
使用其内部状态对指定证书执行检查。 证书按照init
方法指定的顺序init
。此实现调用
check(cert, java.util.Collections.<String>emptySet())
。- Specified by:
-
check
在界面CertPathChecker
- 参数
-
cert
- 要检查的Certificate
- 异常
-
CertPathValidatorException
- 如果指定的证书未通过检查
-
-