java.lang.Object
javax.net.ssl.TrustManagerFactory
此类充当基于信任材料源的信任管理器工厂。每个信任管理器管理用于安全套接字的特定类型的信任材料。信任材料基于KeyStore和/或特定于提供程序的源。
Java平台的每个实现都必须支持以下标准TrustManagerFactory
算法:
PKIX
- 自版本:
- 1.4
- 参见:
-
Constructor Summary
ModifierConstructorDescriptionprotected
TrustManagerFactory
(TrustManagerFactorySpi factorySpi, Provider provider, String algorithm) 创建一个TrustManagerFactory对象。 -
Method Summary
Modifier and TypeMethodDescriptionfinal String
返回此TrustManagerFactory
对象的算法名称。static final String
获取默认的TrustManagerFactory算法名称。static final TrustManagerFactory
getInstance
(String algorithm) 返回一个充当信任管理器工厂的TrustManagerFactory
对象。static final TrustManagerFactory
getInstance
(String algorithm, String provider) 返回一个充当信任管理器工厂的TrustManagerFactory
对象。static final TrustManagerFactory
getInstance
(String algorithm, Provider provider) 返回一个充当信任管理器工厂的TrustManagerFactory
对象。final Provider
返回此TrustManagerFactory
对象的提供程序。final TrustManager[]
为每种类型的信任材料返回一个信任管理器。final void
使用证书颁发机构和相关信任材料的源初始化此工厂。final void
init
(ManagerFactoryParameters spec) 使用特定于提供程序的信任材料源初始化此工厂。
-
Constructor Details
-
TrustManagerFactory
protected TrustManagerFactory(TrustManagerFactorySpi factorySpi, Provider provider, String algorithm) 创建一个TrustManagerFactory对象。- 参数:
-
factorySpi
- 代理 -
provider
- 提供程序 -
algorithm
- 算法
-
-
Method Details
-
getDefaultAlgorithm
获取默认的TrustManagerFactory算法名称。可以通过将
ssl.TrustManagerFactory.algorithm
安全属性的值设置为所需的算法名称,在运行时更改默认的TrustManager。- 返回:
-
根据
ssl.TrustManagerFactory.algorithm
安全属性指定的默认算法名称,如果不存在此类属性,则返回实现特定的默认值。 - 参见:
-
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
- 如果algorithm
为null
- 参见:
-
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
- 如果algorithm
为null
- 参见:
-
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
- 如果algorithm
为null
- 参见:
-
getProvider
返回此TrustManagerFactory
对象的提供程序。- 返回:
-
此
TrustManagerFactory
对象的提供程序
-
init
使用证书颁发机构和相关信任材料的源初始化此工厂。提供程序通常使用KeyStore作为做出信任决策的基础。
对于更灵活的初始化,请参阅
init(ManagerFactoryParameters)
。- 参数:
-
ks
- 密钥库,或为null - 抛出:
-
KeyStoreException
- 如果此操作失败
-
init
使用特定于提供程序的信任材料源初始化此工厂。在某些情况下,提供程序可能需要除密钥库之外的初始化参数。预期使用该特定提供程序的用户将传递由提供程序定义的适当
ManagerFactoryParameters
的实现。然后,提供程序可以调用ManagerFactoryParameters
实现中指定的方法以获取所需的信息。- 参数:
-
spec
- 提供程序特定参数规范的实现 - 抛出:
-
InvalidAlgorithmParameterException
- 如果遇到错误
-
getTrustManagers
为每种类型的信任材料返回一个信任管理器。- 返回:
- 信任管理器
- 抛出:
-
IllegalStateException
- 如果工厂未初始化。
-