- java.lang.Object
-
- java.security.cert.PKIXCertPathChecker
-
- All Implemented Interfaces:
-
Cloneable
,CertPathChecker
- 已知直接子类:
-
PKIXRevocationChecker
public abstract class PKIXCertPathChecker extends Object implements CertPathChecker, Cloneable
对X509Certificate
执行一个或多个检查的抽象类。可以创建
PKIXCertPathChecker
类的具体实现来扩展PKIX认证路径验证算法。 例如,实现可以检查和处理认证路径中每个证书的关键私人扩展。PKIXCertPathChecker
实例使用PKIXParameters
和PKIXBuilderParameters
类的setCertPathCheckers
或addCertPathChecker
方法作为参数传递。 将针对由PKIXCertPathValidator
或CertPathBuilder
实现的每个证书调用PKIXCertPathChecker
的check
方法。A
PKIXCertPathChecker
可以在认证路径中的连续证书上多次调用。 预期具体子类将维护可能需要检查连续证书的任何内部状态。init
方法用于初始化检查器的内部状态,以便可以检查新的认证路径的证书。 必要时,有状态的实现必须覆盖clone
方法,以便允许PKIXCertPathBuilder
有效地回溯并尝试其他路径。 在这些情况下,CertPathBuilder
能够通过恢复克隆的PKIXCertPathChecker
s恢复先前的路径验证状态。证书提交给
PKIXCertPathChecker
可能是向前(从目标到最受信任的CA)或反向(从最受信任的CA到目标)。 一个PKIXCertPathChecker
实现必须支持反向检查(当相反方向呈现证书时执行检查的能力),并且可以支持前向检查(当向前方向呈现证书时执行检查的能力)。isForwardCheckingSupported
方法指示是否支持前向检查。执行检查所需的附加输入参数可以通过此类的具体实现的构造函数来指定。
并发访问
除非另有说明,否则此类中定义的方法不是线程安全的。 需要同时访问单个对象的多个线程应在其间同步并提供必要的锁定。 每个操作单独对象的多个线程不需要同步。
- 从以下版本开始:
- 1.4
- 另请参见:
-
PKIXParameters
,PKIXBuilderParameters
-
-
构造方法摘要
构造方法 Modifier Constructor 描述 protected
PKIXCertPathChecker()
默认构造函数。
-
方法摘要
所有方法 接口方法 抽象方法 具体的方法 Modifier and Type 方法 描述 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
方法(正向或反向)的顺序。 APKIXCertPathChecker
必须支持反向检查,并且可以支持前向检查。- Specified by:
-
init
在接口CertPathChecker
- 参数
-
forward
- 证书颁发给check
方法的check
。 如果true
,证书将从目标提供给最受信任的CA(转发); 如果是false
,从最信任的CA到目标(反向)。 - 异常
-
CertPathValidatorException
- 如果这个PKIXCertPathChecker
无法以指定的顺序检查证书; 如果forward标志为false,则不应该抛出,因为必须支持反向检查
-
isForwardCheckingSupported
public abstract boolean isForwardCheckingSupported()
指示是否支持转发检查。 正向检查指的能力PKIXCertPathChecker
时证书被呈现给执行其检查check
方法在向前方向(从靶到最信任的CA)。- Specified by:
-
isForwardCheckingSupported
在接口CertPathChecker
- 结果
-
true
如果支持前向检查,否则为false
-
getSupportedExtensions
public abstract Set<String> getSupportedExtensions()
返回PKIXCertPathChecker
支持(即识别,能够处理)的X.509证书扩展的不可变Set
,如果不支持扩展名,则null
。集合的每个元素是表示支持的X.509扩展的对象标识符(OID)的
String
。 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
- 一个Collection
的OID字符串,表示当前的一组未解决的关键扩展 - 异常
-
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
- 如果指定的证书没有通过支票
-
-