3.6.2 TrustManagerFactory
TrustManagerFactory类是用于管理信任材料的管理器工厂。
/此类充当基于信任材料源的信任管理器的工厂。每个信任管理器管理特定类型的由安全套接字使用的信任材料。信任材料是基于KeyStore和/或提供者特定的源。/
public class TrustManagerFactory
extends Object
❑方法详述
TrustManagerFactory类的操作与KeyManagerFactory类很相似,同样需要getInstance()工厂方法获得实例化对象。
我们可以通过指定算法名称的方式获得实例化对象,方法如下所示:
//返回充当信任管理器工厂的TrustManagerFactory对象。
public final static TrustManagerFactory getInstance(String algorithm)
或者,指定算法名称的同时指定该算法的提供者,方法如下所示:
//返回充当信任管理器工厂的TrustManagerFactory对象。
public final static TrustManagerFactory getInstance(String algorithm, Provider provider)
//返回充当信任管理器工厂的TrustManagerFactory对象。
public final static TrustManagerFactory getInstance(String algorithm, String provider)
当我们不知道该选用何种算法实例化对象时,可使用默认算法,方法如下所示:
//获取默认的TrustManagerFactory算法名称。
public final static String getDefaultAlgorithm()
获得实例化对象后,需要通过以下方法完成初始化,这一点和KeyManagerFactory类如出一辙:
//用证书授权源和相关的信任材料初始化此工厂。
public final void init(KeyStore ks)
//使用特定于提供者的信任材料源初始化此工厂。
public final void init(ManagerFactoryParameters spec)
我们可以通过如下方法获得信任管理器数组:
//为每种信任材料返回一个信任管理器。
public final TrustManager[]getTrustManagers()
TrustManagerFactory类是引擎类,同样提供了方法如下所示:
//返回此TrustManagerFactory对象的算法名称。
public final String getAlgorithm()
//返回此TrustManagerFactory对象的提供者。
public final Provider getProvider()
❑实现示例
我们可通过代码清单3-27构建信任管理工厂。
代码清单3-27 构建信任管理工厂
//实例化TrustManagerFactory对象
TrustManagerFactory trustManagerFactory=TrustManagerFactory.getInstance("SunX509");
//加载密钥库文件
FileInputStream is=new FileInputStream("D:\x.keystore");
//实例化KeyStore对象
KeyStore ks=KeyStore.getInstance("JKS");
//加载密钥库
ks.load(is,"password".toCharArray());
//关闭流
is.close();
//初始化TrustManagerFactory对象
trustManagerFactory.init(trustkeyStore);
获得密钥管理工厂和信任材料管理工厂后做什么用呢?我们将在后面介绍。