我试图了解发生了什么这段代码 http://svn.apache.org/repos/asf/httpcomponents/httpclient/branches/4.0.x/httpclient/src/examples/org/apache/http/examples/client/ClientCustomSSL.java.
KeyStore trustStore = KeyStore.getInstance(KeyStore.getDefaultType());
FileInputStream instream = new FileInputStream(new File("my.keystore"));
try {
trustStore.load(instream, "nopassword".toCharArray());
} finally {
instream.close();
}
SSLSocketFactory socketFactory = new SSLSocketFactory(trustStore);
Scheme sch = new Scheme("https", socketFactory, 443);
httpclient.getConnectionManager().getSchemeRegistry().register(sch);
我的问题:
trustStore.load(instream, "nopassword".toCharArray());
到底在做什么?从阅读文档load()
将从输入流(这只是我们刚刚创建的空文件)加载 KeyStore 数据,使用一些任意的“nopassword”。为什么不直接加载它null
作为 InputStream 参数并使用空字符串作为密码字段?
那么当这个空的 KeyStore 被传递给 SSLSocketFactory 构造函数时会发生什么?这样一个操作的结果是什么呢?
或者——这只是一个例子,在真实的应用程序中,您必须实际引用现有的密钥库文件/密码?
此示例尝试向您展示如何加载您自己的信任存储。要使此示例正常工作,您需要在当前目录中有一个名为“my.keystore”的文件,并且密钥库的密码为“nopassword”。
请注意new File("my.keystore")
不一定创建新文件。它只是创建一个指向路径的 File 对象。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)