public abstract class PKIXCertPathChecker extends Object implements CertPathChecker, Cloneable
X509Certificate执行一个或多个检查。
可以创建PKIXCertPathChecker类的具体实现来扩展PKIX认证路径验证算法。 例如,实现可以检查和处理认证路径中每个证书的关键私有扩展。
PKIXCertPathChecker的PKIXCertPathChecker使用PKIXParameters和PKIXBuilderParameters类的setCertPathCheckers或addCertPathChecker方法作为参数传递。 PKIXCertPathChecker的check方法中的每一个将被依次称为由PKIX CertPathValidator或CertPathBuilder实现的每个证书。
A PKIXCertPathChecker可以在认证路径中的连续证书上多次调用。 预期具体子类将维护可能需要检查连续证书的任何内部状态。 init方法用于初始化检查器的内部状态,以便可以检查新的认证路径的证书。 必要时,有状态的实现必须覆盖clone方法,以便允许PKIX CertPathBuilder有效地回溯并尝试其他路径。 在这些情况下, CertPathBuilder可以通过恢复克隆的PKIXCertPathChecker来恢复先前的路径验证状态。
证书颁发给PKIXCertPathChecker可能是向前(从目标到最受信任的CA)或反向(从最受信任的CA到目标)。 一个PKIXCertPathChecker实现必须支持反向检查(当相反方向呈现证书时执行检查的能力),并且可以支持前向检查(当向前方向呈现证书时执行检查的能力)。 isForwardCheckingSupported方法指示是否支持前向检查。
执行检查所需的附加输入参数可以通过此类的具体实现的构造函数来指定。
并发访问
除非另有说明,否则此类中定义的方法不是线程安全的。 需要同时访问单个对象的多个线程应在其间同步并提供必要的锁定。 每个操作单独对象的多个线程不需要同步。
PKIXParameters , PKIXBuilderParameters
| Modifier | Constructor and Description |
|---|---|
protected |
PKIXCertPathChecker()
默认构造函数。
|
| Modifier and Type | Method and Description |
|---|---|
void |
check(Certificate cert)
使用其内部状态对指定的证书执行检查。
|
abstract void |
check(Certificate cert, Collection<String> unresolvedCritExts)
使用其内部状态对指定证书执行检查,并从指定的OID字符串集合中删除其处理的任何关键扩展,这些扩展代表未解决的关键扩展。
|
Object |
clone()
返回此对象的克隆。
|
abstract Set<String> |
getSupportedExtensions()
返回一个不可变
Set X.509证书扩展的,这
PKIXCertPathChecker支持(即
|
abstract void |
init(boolean forward)
这个初始化的内部状态
PKIXCertPathChecker 。
|
abstract boolean |
isForwardCheckingSupported()
指示是否支持转发检查。
|
public abstract void init(boolean forward)
throws CertPathValidatorException
PKIXCertPathChecker 。
forward标志指定证书将传递给check方法(正向或反向)的顺序。 A PKIXCertPathChecker 必须支持反向检查,并且可以支持前向检查。
init在接口
CertPathChecker
forward - 证书颁发给check方法的顺序。
如果true ,证书从目标提供给最可靠的CA(转发);
如果false ,从最信任的CA到目标(反向)。
CertPathValidatorException - 如果这PKIXCertPathChecker无法以指定的顺序检查证书;
如果forward标志为false,则不应该抛出,因为必须支持反向检查
public abstract boolean isForwardCheckingSupported()
PKIXCertPathChecker当证书被呈现给执行其检查check方法在向前方向(从靶到最信任的CA)。
isForwardCheckingSupported在接口
CertPathChecker
true如果支持前向检查,
false false
public abstract Set<String> getSupportedExtensions()
Set X.509证书扩展的,这PKIXCertPathChecker支持(即识别,能够处理),或null如果没有扩展支持。
集合的每个元素是表示String的X.509扩展的对象标识符(OID)的String。 OID由一组以句点分隔的非负整数表示。
PKIXCertPathChecker可能能够处理的所有X.509证书扩展应包含在该集合中。
Set X.509扩展的OID(在
String此支持的格式)
PKIXCertPathChecker ,或
null如果没有扩展支持
public abstract void check(Certificate cert, Collection<String> unresolvedCritExts) throws CertPathValidatorException
init方法规定的顺序显示。
cert - 要检查的
Certificate
unresolvedCritExts - 一个
Collection的OID字符串,代表当前的一组未解决的关键扩展
CertPathValidatorException - 如果指定的证书没有通过支票
public void check(Certificate cert) throws CertPathValidatorException
init方法规定的顺序显示。
此实现调用check(cert, java.util.Collections.<String>emptySet()) 。
check在接口
CertPathChecker
cert - 要检查的
Certificate
CertPathValidatorException - 如果指定的证书没有通过支票
Submit a bug or feature
For further API reference and developer documentation, see Java SE Documentation. That documentation contains more detailed, developer-targeted descriptions, with conceptual overviews, definitions of terms, workarounds, and working code examples.
Copyright © 1993, 2014, Oracle and/or its affiliates. All rights reserved.