- 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
-
-
-
构造方法摘要
构造方法 变量 构造器 描述 protectedCertPathBuilder(CertPathBuilderSpi builderSpi, Provider provider, String algorithm)创建给定算法的CertPathBuilder对象,并在其中封装给定的提供程序实现(SPI对象)。
-
方法摘要
所有方法 静态方法 实例方法 具体的方法 变量和类型 方法 描述 CertPathBuilderResultbuild(CertPathParameters params)尝试使用指定的算法参数集构建证书路径。StringgetAlgorithm()返回此CertPathBuilder的算法的CertPathBuilder。static StringgetDefaultType()返回certpathbuilder.type安全属性指定的默认值CertPathBuilder类型,如果不存在此类属性,则返回字符串“PKIX”。static CertPathBuildergetInstance(String algorithm)返回实现指定算法的CertPathBuilder对象。static CertPathBuildergetInstance(String algorithm, String provider)返回实现指定算法的CertPathBuilder对象。static CertPathBuildergetInstance(String algorithm, Provider provider)返回实现指定算法的CertPathBuilder对象。ProvidergetProvider()返回此CertPathBuilder的提供者。CertPathCheckergetRevocationChecker()返回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.preferredSecurity属性来确定指定算法的首选提供程序顺序。 这可能与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
-
-