- java.lang.Object
-
- java.security.cert.CertPathBuilder
-
public class CertPathBuilder extends Object
用于构建证书路径的类(也称为证书链)。此类使用基于提供程序的体系结构。 要创建
CertPathBuilder
,请调用其中一个静态getInstance
方法,传入所需的CertPathBuilder
算法名称,CertPathBuilder
所需的提供程序名称。创建
CertPathBuilder
对象后,可以通过调用build
方法并向其传递特定于算法的参数集来构建证书路径。 如果成功的话,结果(包括CertPath
一个建)在实现一个对象返回CertPathBuilderResult
接口。该
getRevocationChecker()
方法允许应用程序指定用于由附加特定算法的参数和选项CertPathBuilder
检查证书的撤销状态时。 这是一个演示如何与PKIX算法一起使用的示例:CertPathBuilder cpb = CertPathBuilder.getInstance("PKIX"); PKIXRevocationChecker rc = (PKIXRevocationChecker)cpb.getRevocationChecker(); rc.setOptions(EnumSet.of(Option.PREFER_CRLS)); params.addCertPathChecker(rc); CertPathBuilderResult cpbr = cpb.build(params);
Java平台的每个实现都需要支持以下标准
CertPathBuilder
算法:-
PKIX
并发访问
这个类的静态方法保证是线程安全的。 多个线程可以同时调用此类中定义的静态方法,而不会产生任何不良影响。
但是,对于此类定义的非静态方法,情况并非如此。 除非特定提供程序另有说明,否则需要同时访问单个
CertPathBuilder
实例的线程应在它们之间进行同步并提供必要的锁定。 每个操作不同CertPathBuilder
实例的多个线程无需同步。- 从以下版本开始:
- 1.4
- 另请参见:
-
CertPath
-
-
-
构造方法摘要
构造方法 变量 构造器 描述 protected
CertPathBuilder(CertPathBuilderSpi builderSpi, Provider provider, String algorithm)
创建给定算法的CertPathBuilder
对象,并在其中封装给定的提供程序实现(SPI对象)。
-
方法摘要
所有方法 静态方法 实例方法 具体的方法 变量和类型 方法 描述 CertPathBuilderResult
build(CertPathParameters params)
尝试使用指定的算法参数集构建证书路径。String
getAlgorithm()
返回此CertPathBuilder
的算法的CertPathBuilder
。static String
getDefaultType()
返回certpathbuilder.type
安全属性指定的默认值CertPathBuilder
类型,如果不存在此类属性,则返回字符串“PKIX”。static CertPathBuilder
getInstance(String algorithm)
返回实现指定算法的CertPathBuilder
对象。static CertPathBuilder
getInstance(String algorithm, String provider)
返回实现指定算法的CertPathBuilder
对象。static CertPathBuilder
getInstance(String algorithm, Provider provider)
返回实现指定算法的CertPathBuilder
对象。Provider
getProvider()
返回此CertPathBuilder
的提供者。CertPathChecker
getRevocationChecker()
返回CertPathChecker
,封装的CertPathBuilderSpi
实现用于检查证书的撤销状态。
-
-
-
构造方法详细信息
-
CertPathBuilder
protected CertPathBuilder(CertPathBuilderSpi builderSpi, Provider provider, String algorithm)
创建给定算法的CertPathBuilder
对象,并在其中封装给定的提供程序实现(SPI对象)。- 参数
-
builderSpi
- 提供程序实现 -
provider
- 提供者 -
algorithm
- 算法名称
-
-
方法详细信息
-
getInstance
public static CertPathBuilder getInstance(String algorithm) throws NoSuchAlgorithmException
返回实现指定算法的CertPathBuilder
对象。此方法遍历已注册的安全提供程序列表,从最首选的提供程序开始。 将返回一个新的CertPathBuilder对象,该对象封装来自第一个支持指定算法的Provider的CertPathBuilderSpi实现。
请注意,可以通过
Security.getProviders()
方法检索已注册提供商的列表。- Implementation Note:
-
JDK Reference Implementation另外使用
jdk.security.provider.preferred
Security
属性来确定指定算法的首选提供程序顺序。 这可能与Security.getProviders()
返回的提供商的顺序不同。 - 参数
-
algorithm
- 请求的CertPathBuilder
算法的名称。 有关标准算法名称的信息,请参阅Java Security Standard Algorithm Names Specification中的CertPathBuilder部分。 - 结果
-
实现指定算法的
CertPathBuilder
对象 - 异常
-
NoSuchAlgorithmException
- 如果没有Provider
支持指定算法的CertPathBuilderSpi
实现 -
NullPointerException
- 如果algorithm
是null
- 另请参见:
-
Provider
-
getInstance
public static CertPathBuilder getInstance(String algorithm, String provider) throws NoSuchAlgorithmException, NoSuchProviderException
返回实现指定算法的CertPathBuilder
对象。将返回一个新的CertPathBuilder对象,该对象将封装来自指定提供程序的CertPathBuilderSpi实现。 必须在安全提供程序列表中注册指定的提供程序。
请注意,可以通过
Security.getProviders()
方法检索已注册提供商的列表。- 参数
-
algorithm
- 请求的CertPathBuilder
算法的名称。 有关标准算法名称的信息,请参阅Java Security Standard Algorithm Names Specification中的CertPathBuilder部分。 -
provider
- 提供者的名称。 - 结果
-
实现指定算法的
CertPathBuilder
对象 - 异常
-
IllegalArgumentException
- 如果provider
是null
或空 -
NoSuchAlgorithmException
- 如果指定提供程序的指定算法的CertPathBuilderSpi
实现不可用 -
NoSuchProviderException
- 如果指定的提供程序未在安全提供程序列表中注册 -
NullPointerException
- 如果algorithm
是null
- 另请参见:
-
Provider
-
getInstance
public static CertPathBuilder getInstance(String algorithm, Provider provider) throws NoSuchAlgorithmException
返回实现指定算法的CertPathBuilder
对象。将返回一个新的CertPathBuilder对象,该对象封装了指定Provider对象的CertPathBuilderSpi实现。 请注意,指定的Provider对象不必在提供程序列表中注册。
- 参数
-
algorithm
- 请求的CertPathBuilder
算法的名称。 有关标准算法名称的信息,请参阅Java Security Standard Algorithm Names Specification中的CertPathBuilder部分。 -
provider
- 提供者。 - 结果
-
实现指定算法的
CertPathBuilder
对象 - 异常
-
IllegalArgumentException
- 如果provider
是null
-
NoSuchAlgorithmException
- 如果指定的算法的CertPathBuilderSpi
实现不可用于指定的Provider
对象 -
NullPointerException
- 如果algorithm
是null
- 另请参见:
-
Provider
-
getProvider
public final Provider getProvider()
返回此CertPathBuilder
的提供者。- 结果
-
CertPathBuilder
的提供者
-
getAlgorithm
public final String getAlgorithm()
返回此CertPathBuilder
的算法的CertPathBuilder
。- 结果
-
这个
CertPathBuilder
的算法的CertPathBuilder
-
build
public final CertPathBuilderResult build(CertPathParameters params) throws CertPathBuilderException, InvalidAlgorithmParameterException
尝试使用指定的算法参数集构建证书路径。- 参数
-
params
- 算法参数 - 结果
- 构建算法的结果
- 异常
-
CertPathBuilderException
- 如果构建器无法构造满足指定参数的证书路径 -
InvalidAlgorithmParameterException
- 如果指定的参数不适合此CertPathBuilder
-
getDefaultType
public static final String getDefaultType()
返回certpathbuilder.type
安全属性指定的默认值CertPathBuilder
类型,如果不存在此类属性,则返回字符串“PKIX”。默认情况下,
CertPathBuilder
类型可以由不希望在调用其中一个getInstance
方法时使用硬编码类型的应用程序使用,并且希望在用户未指定自己的类型时提供默认类型。默认
CertPathBuilder
类型可通过的值设置被改变certpathbuilder.type
安全属性,以所希望的类型。- 结果
-
certpathbuilder.type
安全属性指定的默认值CertPathBuilder
,如果不存在此类属性,则为字符串“PKIX”。 - 另请参见:
-
security properties
-
getRevocationChecker
public final CertPathChecker getRevocationChecker()
返回CertPathChecker
,封装的CertPathBuilderSpi
实现用于检查证书的撤销状态。 PKIX实现返回PKIXRevocationChecker
类型的PKIXRevocationChecker
。 每次调用此方法都会返回一个新实例CertPathChecker
。此方法的主要目的是允许调用者指定其他输入参数和特定于撤销检查的选项。 有关示例,请参阅类描述。
- 结果
-
CertPathChecker
- 异常
-
UnsupportedOperationException
- 如果服务提供商不支持此方法 - 从以下版本开始:
- 1.8
-
-