java.lang.Object java.security.cert.CertPathValidator
public class CertPathValidator
验证证书路径(也称为证书链)的类。
此类使用基于提供者的架构。要创建一个 CertPathValidator
,应调用某个 static getInstance
方法、传入所需的 CertPathValidator
算法名称,
一旦创建了 CertPathValidator
对象,就可使用它来验证证书路径,方法是调用 validate
方法并向其传递要验证的 CertPath
和一个特定于算法的参数集。如果验证成功,则在一个实现了 CertPathValidatorResult
接口的对象中返回结果。
并发访问
可保证此类的 static 方法是线程安全的。多个线程可以并发调用此类中所定义的 static 方法,而不会产生什么恶果。
但是,对于此类所定义的非 static 方法并非如此。除非具体的提供者另行指定,否则需要并发访问单个 CertPathValidator
实例的多个线程应该在它们之间实现同步并提供所需的锁定。如果对每个线程都操作一个不同 CertPathValidator
实例的多个线程而言,则无需实现同步。
CertPath
构造方法摘要 | |
---|---|
protected |
CertPathValidator(CertPathValidatorSpi validatorSpi, Provider provider, String algorithm) 创建一个给定算法的 CertPathValidator 对象,并在其中封装给定的提供者实现(SPI 对象)。 |
方法摘要 | |
---|---|
String |
getAlgorithm() 返回此 CertPathValidator 的算法名称。 |
static String |
getDefaultType() 返回 Java 安全属性文件中所指定的默认 CertPathValidator 类型,如果没有此属性,则返回字符串 "PKIX"。 |
static CertPathValidator |
getInstance(String algorithm) 返回实现了指定算法的 CertPathValidator 对象。 |
static CertPathValidator |
getInstance(String algorithm, Provider provider) 返回实现指定算法的 CertPathValidator 对象。 |
static CertPathValidator |
getInstance(String algorithm, String provider) 返回实现指定算法的 CertPathValidator 对象。 |
Provider |
getProvider() 返回此 CertPathValidator 的 Provider 。 |
CertPathValidatorResult |
validate(CertPath certPath, CertPathParameters params) 使用指定的算法参数集验证指定的证书路径。 |
从类 java.lang.Object 继承的方法 |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
构造方法详细信息 |
---|
protected CertPathValidator(CertPathValidatorSpi validatorSpi, Provider provider, String algorithm)
CertPathValidator
对象,并在其中封装给定的提供者实现(SPI 对象)。
validatorSpi
- 提供者实现
provider
- 提供者
algorithm
- 算法名称
方法详细信息 |
---|
public static CertPathValidator getInstance(String algorithm) throws NoSuchAlgorithmException
CertPathValidator
对象。
此方法从首选 Provider 开始,遍历已注册安全提供者列表。返回一个封装 CertPathValidatorSpi 实现的新 CertPathValidator 对象,该实现取自第一个支持指定算法的 Provider。
注意,已注册提供者列表可以通过 Security.getProviders()
方法获得。
algorithm
- 所请求的
CertPathValidator
算法名称。有关标准算法名称的信息,请参阅
Java Certification Path API Programmer's Guide 的附录 A。
CertPathValidator
对象。
NoSuchAlgorithmException
- 如果没有 Provider 支持指定算法的 CertPathValidatorSpi 实现。
Provider
public static CertPathValidator getInstance(String algorithm, String provider) throws NoSuchAlgorithmException, NoSuchProviderException
CertPathValidator
对象。
返回一个封装 CertPathValidatorSpi 实现的新 CertPathValidator 对象,该实现取自指定的提供者。指定的提供者必须已在安全提供者列表中注册。
注意,已注册提供者列表可以通过 Security.getProviders()
方法获得。
algorithm
- 所请求的
CertPathValidator
算法名称。有关标准算法名称的信息,请参阅
Java Certification Path API Programmer's Guide 的附录 A。
provider
- 提供者的名称。
CertPathValidator
对象。
NoSuchAlgorithmException
- 如果无法从指定提供者获得指定算法的 CertPathValidatorSpi 实现。
NoSuchProviderException
- 如果指定提供者没有在安全提供者列表中注册。
IllegalArgumentException
- 如果
provider
为 null 或空。
Provider
public static CertPathValidator getInstance(String algorithm, Provider provider) throws NoSuchAlgorithmException
CertPathValidator
对象。
返回一个封装 CertPathValidatorSpi 实现的新 CertPathValidator 对象,该实现取自指定的 Provider 对象。注意,指定的 Provider 对象无需在提供者列表中注册。
algorithm
- 所请求的
CertPathValidator
算法名称。有关标准算法名称的信息,请参阅
Java Certification Path API Programmer's Guide 的附录 A。
provider
- 提供者。
CertPathValidator
对象。
NoSuchAlgorithmException
- 如果无法从指定 Provider 对象获得指定算法的 CertPathValidatorSpi 实现。
IllegalArgumentException
- 如果
provider
为 null。
Provider
public final Provider getProvider()
CertPathValidator
的
Provider
。
CertPathValidator
的
Provider
public final String getAlgorithm()
CertPathValidator
的算法名称。
CertPathValidator
的算法名称
public final CertPathValidatorResult validate(CertPath certPath, CertPathParameters params) throws CertPathValidatorException, InvalidAlgorithmParameterException
所指定的 CertPath
必须是该验证算法支持的类型,否则抛出 InvalidAlgorithmParameterException
。例如,实现 PKIX 算法的 CertPathValidator
将验证 X.509 类型的 CertPath
对象。
certPath
- 要验证的
CertPath
params
- 算法参数
CertPathValidatorException
- 如果
CertPath
未通过验证
InvalidAlgorithmParameterException
- 如果指定的参数或指定
CertPath
的类型不适合此
CertPathValidator
public static final String getDefaultType()
CertPathValidator
类型,如果没有此属性,则返回字符串 "PKIX"。Java 安全属性文件位于名为 <JAVA_HOME>/lib/security/java.security 文件中。 <JAVA_HOME> 引用 java.home 系统属型的值,并指定安装 JRE 的目录。
如果调用某个 getInstance
方法时不希望使用硬编码 CertPathValidator 类型,并且在用户未指定所用 CertPathValidator 类型的情况下希望提供默认类型的应用程序,那么可以使用默认的 CertPathValidator
类型。
通过将 "certpathvalidator.type" 安全属性(在 Java 安全属性文件中)的值设置为所需的类型,就可以更改默认的 CertPathValidator
类型。
CertPathValidator
类型,如果没有此属性,则返回字符串 "PKIX"。