Module  java.base
软件包  javax.net.ssl

Class TrustManagerFactory



  • public class TrustManagerFactory
    extends Object
    该类作为基于信任资料来源的信托经理的工厂。 每个信任管理器管理特定类型的信任资料供安全套接字使用。 信托材料是基于KeyStore和/或提供者特定的来源。

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

    • PKIX
    该算法在Java安全标准算法名称规范的TrustManagerFactory section中进行了描述。 请参阅发行说明文件以了解是否支持其他算法。
    从以下版本开始:
    1.4
    另请参见:
    TrustManager
    • 构造方法详细信息

      • TrustManagerFactory

        protected TrustManagerFactory​(TrustManagerFactorySpi factorySpi,
                                      Provider provider,
                                      String algorithm)
        创建一个TrustManagerFactory对象。
        参数
        factorySpi - 代表
        provider - 提供商
        algorithm - 算法
    • 方法详细信息

      • getDefaultAlgorithm

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

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

        结果
        ssl.TrustManagerFactory.algorithm安全属性指定的默认算法名称,如果没有此类属性,则为实现特定的默认值。
        另请参见:
        security properties
      • getAlgorithm

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

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

        结果
        这个 TrustManagerFactory对象的算法名称
      • getInstance

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

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

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

        Implementation Note:
        JDK参考实现另外使用jdk.security.provider.preferred Security属性来确定指定算法的首选提供者顺序。 这可能与Security.getProviders()返回的提供商的顺序不同。
        参数
        algorithm - 所请求的信任管理算法的标准名称。 有关标准算法名称的信息,请参阅Java Security Standard Algorithm Names文档。
        结果
        新的 TrustManagerFactory对象
        异常
        NoSuchAlgorithmException - 如果没有 Provider支持指定算法的 TrustManagerFactorySpi实现
        NullPointerException - 如果 algorithmnull
        另请参见:
        Provider
      • getInstance

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

        返回从指定的Provider对象封装TrustManagerFactorySpi实现的新TrustManagerFactory对象。 请注意,指定的Provider对象不必在提供者列表中注册。

        参数
        algorithm - 请求的信任管理算法的标准名称。 有关标准算法名称的信息,请参阅Java Security Standard Algorithm Names文档。
        provider - 提供者的一个实例。
        结果
        新的 TrustManagerFactory对象
        异常
        IllegalArgumentException - 如果提供者是 null
        NoSuchAlgorithmException - 如果指定的算法的 TrustManagerFactorySpi实现从指定的 Provider对象中不可用
        NullPointerException - 如果 algorithmnull
        另请参见:
        Provider
      • 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 - 如果工厂没有初始化。