Module java.base
Package javax.net.ssl

Class TrustManagerFactory

java.lang.Object
javax.net.ssl.TrustManagerFactory

public class TrustManagerFactory extends Object
此类充当基于信任材料源的信任管理器工厂。每个信任管理器管理用于安全套接字的特定类型的信任材料。信任材料基于KeyStore和/或特定于提供程序的源。

Java平台的每个实现都必须支持以下标准TrustManagerFactory算法:

  • PKIX
此算法在Java安全标准算法名称规范的 TrustManagerFactory部分中有描述。请查阅您的实现的发布文档,以查看是否支持任何其他算法。
自版本:
1.4
参见:
  • Constructor Details

    • TrustManagerFactory

      protected TrustManagerFactory(TrustManagerFactorySpi factorySpi, Provider provider, String algorithm)
      创建一个TrustManagerFactory对象。
      参数:
      factorySpi - 代理
      provider - 提供程序
      algorithm - 算法
  • Method Details

    • getDefaultAlgorithm

      public static final String getDefaultAlgorithm()
      获取默认的TrustManagerFactory算法名称。

      可以通过将ssl.TrustManagerFactory.algorithm安全属性的值设置为所需的算法名称,在运行时更改默认的TrustManager。

      返回:
      根据ssl.TrustManagerFactory.algorithm安全属性指定的默认算法名称,如果不存在此类属性,则返回实现特定的默认值。
      参见:
    • getAlgorithm

      public final String getAlgorithm()
      返回此TrustManagerFactory对象的算法名称。

      这是在创建此TrustManagerFactory对象的getInstance调用中指定的名称。

      返回:
      TrustManagerFactory对象的算法名称
    • getInstance

      public static final TrustManagerFactory getInstance(String algorithm) throws NoSuchAlgorithmException
      返回一个充当信任管理器工厂的TrustManagerFactory对象。

      此方法遍历已注册的安全提供程序列表,从最首选的提供程序开始。返回一个封装来自支持指定算法的第一个提供程序的TrustManagerFactorySpi实现的新TrustManagerFactory对象。

      请注意,已注册提供程序的列表可以通过Security.getProviders()方法检索。

      实现注意:
      JDK参考实现另外使用jdk.security.provider.preferred Security属性来确定指定算法的首选提供程序顺序。这可能与Security.getProviders()返回的提供程序顺序不同。
      参数:
      algorithm - 请求的信任管理算法的标准名称。有关标准算法名称的信息,请参阅Java安全标准算法名称规范中的 TrustManagerFactory部分
      返回:
      新的TrustManagerFactory对象
      抛出:
      NoSuchAlgorithmException - 如果没有Provider支持指定算法的TrustManagerFactorySpi实现
      NullPointerException - 如果algorithmnull
      参见:
    • getInstance

      public static final TrustManagerFactory getInstance(String algorithm, String provider) throws NoSuchAlgorithmException, NoSuchProviderException
      返回一个充当信任管理器工厂的TrustManagerFactory对象。

      返回一个封装来自指定提供程序的KeyManagerFactorySpi实现的新KeyManagerFactory对象。指定的提供程序必须在安全提供程序列表中注册。

      请注意,已注册提供程序的列表可以通过Security.getProviders()方法检索。

      参数:
      algorithm - 请求的信任管理算法的标准名称。有关标准算法名称的信息,请参阅Java安全标准算法名称规范中的 TrustManagerFactory部分
      provider - 提供程序的名称。
      返回:
      新的TrustManagerFactory对象
      抛出:
      IllegalArgumentException - 如果提供程序名称为null或空
      NoSuchAlgorithmException - 如果指定提供程序中不提供指定算法的TrustManagerFactorySpi实现
      NoSuchProviderException - 如果指定提供程序未在安全提供程序列表中注册
      NullPointerException - 如果algorithmnull
      参见:
    • getInstance

      public static final TrustManagerFactory getInstance(String algorithm, Provider provider) throws NoSuchAlgorithmException
      返回一个充当信任管理器工厂的TrustManagerFactory对象。

      返回一个封装来自指定Provider对象的TrustManagerFactorySpi实现的新TrustManagerFactory对象。请注意,指定的Provider对象不必在提供程序列表中注册。

      参数:
      algorithm - 请求的信任管理算法的标准名称。有关标准算法名称的信息,请参阅Java安全标准算法名称规范中的 TrustManagerFactory部分
      provider - 提供程序的实例。
      返回:
      新的TrustManagerFactory对象
      抛出:
      IllegalArgumentException - 如果提供程序为null
      NoSuchAlgorithmException - 如果指定Provider对象中不提供指定算法的TrustManagerFactorySpi实现
      NullPointerException - 如果algorithmnull
      参见:
    • getProvider

      public final Provider getProvider()
      返回此TrustManagerFactory对象的提供程序。
      返回:
      TrustManagerFactory对象的提供程序
    • init

      public final void init(KeyStore ks) throws KeyStoreException
      使用证书颁发机构和相关信任材料的源初始化此工厂。

      提供程序通常使用KeyStore作为做出信任决策的基础。

      对于更灵活的初始化,请参阅init(ManagerFactoryParameters)

      参数:
      ks - 密钥库,或为null
      抛出:
      KeyStoreException - 如果此操作失败
    • init

      public final void init(ManagerFactoryParameters spec) throws InvalidAlgorithmParameterException
      使用特定于提供程序的信任材料源初始化此工厂。

      在某些情况下,提供程序可能需要除密钥库之外的初始化参数。预期使用该特定提供程序的用户将传递由提供程序定义的适当ManagerFactoryParameters的实现。然后,提供程序可以调用ManagerFactoryParameters实现中指定的方法以获取所需的信息。

      参数:
      spec - 提供程序特定参数规范的实现
      抛出:
      InvalidAlgorithmParameterException - 如果遇到错误
    • getTrustManagers

      public final TrustManager[] getTrustManagers()
      为每种类型的信任材料返回一个信任管理器。
      返回:
      信任管理器
      抛出:
      IllegalStateException - 如果工厂未初始化。