此类使用基于提供者的体系结构。要创建 CertPathBuilder ,请调用静态 getInstance 方法之一,传入所需 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
- 参见:
-
构造方法总结
构造方法修饰符构造方法描述protectedCertPathBuilder(CertPathBuilderSpi builderSpi, Provider provider, String algorithm) 创建给定算法的CertPathBuilder对象,并将给定的提供程序实现(SPI 对象)封装在其中。 -
方法总结
修饰符和类型方法描述final CertPathBuilderResultbuild(CertPathParameters params) 尝试使用指定的算法参数集构建证书路径。final String返回此CertPathBuilder的算法名称。static final String返回由certpathbuilder.type安全属性指定的默认CertPathBuilder类型,如果不存在此类属性,则返回字符串“PKIX”。static CertPathBuildergetInstance(String algorithm) 返回实现指定算法的CertPathBuilder对象。static CertPathBuildergetInstance(String algorithm, String provider) 返回实现指定算法的CertPathBuilder对象。static CertPathBuildergetInstance(String algorithm, Provider provider) 返回实现指定算法的CertPathBuilder对象。final Provider返回此CertPathBuilder的提供者。final CertPathChecker返回一个CertPathChecker,封装的CertPathBuilderSpi实现使用它来检查证书的吊销状态。
-
构造方法详细信息
-
CertPathBuilder
创建给定算法的CertPathBuilder对象,并将给定的提供程序实现(SPI 对象)封装在其中。- 参数:
builderSpi- 供应商实施provider- 供应商algorithm- 算法名称
-
-
方法详情
-
getInstance
返回实现指定算法的CertPathBuilder对象。此方法遍历已注册的安全提供者列表,从最喜欢的提供者开始。返回一个新的 CertPathBuilder 对象,该对象封装了第一个支持指定算法的 Provider 的 CertPathBuilderSpi 实现。
请注意,可以通过
Security.getProviders()方法检索已注册提供商的列表。- 实现注意事项:
-
JDK 参考实现还使用
jdk.security.provider.preferredSecurity属性来确定指定算法的首选提供程序顺序。这可能与Security.getProviders()返回的提供商顺序不同。 - 参数:
algorithm- 请求的CertPathBuilder算法的名称。有关标准算法名称的信息,请参阅 Java 安全标准算法名称规范 中的 CertPathBuilder 部分。- 返回:
-
实现指定算法的
CertPathBuilder对象 - 抛出:
NoSuchAlgorithmException- 如果没有Provider支持指定算法的CertPathBuilderSpi实现NullPointerException- 如果algorithm是null- 参见:
-
getInstance
public static CertPathBuilder getInstance(String algorithm, String provider) throws NoSuchAlgorithmException , NoSuchProviderException 返回实现指定算法的CertPathBuilder对象。返回一个新的 CertPathBuilder 对象,该对象封装了来自指定提供程序的 CertPathBuilderSpi 实现。指定的提供者必须在安全提供者列表中注册。
请注意,可以通过
Security.getProviders()方法检索已注册提供商的列表。- 参数:
algorithm- 请求的CertPathBuilder算法的名称。有关标准算法名称的信息,请参阅 Java 安全标准算法名称规范 中的 CertPathBuilder 部分。provider- 提供商的名称。- 返回:
-
实现指定算法的
CertPathBuilder对象 - 抛出:
IllegalArgumentException- 如果provider为null或为空NoSuchAlgorithmException- 如果指定算法的CertPathBuilderSpi实现不能从指定的提供商处获得NoSuchProviderException- 如果指定的提供者没有在安全提供者列表中注册NullPointerException- 如果algorithm是null- 参见:
-
getInstance
public static CertPathBuilder getInstance(String algorithm, Provider provider) throws NoSuchAlgorithmException 返回实现指定算法的CertPathBuilder对象。返回一个新的 CertPathBuilder 对象,该对象封装了来自指定 Provider 对象的 CertPathBuilderSpi 实现。请注意,指定的提供者对象不必在提供者列表中注册。
- 参数:
algorithm- 请求的CertPathBuilder算法的名称。有关标准算法名称的信息,请参阅 Java 安全标准算法名称规范 中的 CertPathBuilder 部分。provider- 提供商。- 返回:
-
实现指定算法的
CertPathBuilder对象 - 抛出:
IllegalArgumentException- 如果provider是nullNoSuchAlgorithmException- 如果无法从指定的Provider对象获得指定算法的CertPathBuilderSpi实现NullPointerException- 如果algorithm是null- 参见:
-
getProvider
返回此CertPathBuilder的提供者。- 返回:
-
这个
CertPathBuilder的提供者
-
getAlgorithm
返回此CertPathBuilder的算法名称。- 返回:
-
这个
CertPathBuilder的算法名称
-
build
public final CertPathBuilderResult build(CertPathParameters params) throws CertPathBuilderException , InvalidAlgorithmParameterException 尝试使用指定的算法参数集构建证书路径。- 参数:
params- 算法参数- 返回:
- 构建算法的结果
- 抛出:
CertPathBuilderException- 如果构建器无法构建满足指定参数的证书路径InvalidAlgorithmParameterException- 如果指定的参数不适合这个CertPathBuilder
-
getDefaultType
返回由certpathbuilder.type安全属性指定的默认CertPathBuilder类型,如果不存在此类属性,则返回字符串“PKIX”。默认
CertPathBuilder类型可由不想在调用getInstance方法之一时使用硬编码类型的应用程序使用,并希望在用户未指定其自己的情况下提供默认类型。可以通过将
certpathbuilder.type安全属性的值设置为所需类型来更改默认CertPathBuilder类型。- 返回:
-
由
certpathbuilder.type安全属性指定的默认CertPathBuilder类型,如果不存在此类属性,则为字符串“PKIX”。 - 参见:
-
getRevocationChecker
返回一个CertPathChecker,封装的CertPathBuilderSpi实现使用它来检查证书的吊销状态。 PKIX 实现返回类型为PKIXRevocationChecker的对象。每次调用此方法都会返回一个新的CertPathChecker实例。此方法的主要目的是允许调用者指定特定于吊销检查的其他输入参数和选项。有关示例,请参见类描述。
- 返回:
CertPathChecker- 抛出:
UnsupportedOperationException- 如果服务提供商不支持此方法- 自从:
- 1.8
-