如何创建自定义SSLSocketFactory?

时间:2011-05-20 23:20:06

标签: java ssl mocking

我正在尝试创建自己的javax.net.ssl.SSLSocketFactory实现,以便捕获所有HTTP / SSL请求,由第三方库发送并记录它们。这就是在该库中调用工厂的方式(它是commons-httpclient):

import javax.net.ssl.SSLSocketFactory;
// ...
return SSLSocketFactory.getDefault().createSocket(host, port);

目前使用的实施是com.sun.net.ssl.internal.ssl.SSLSocketFactoryImpl。如何将其更改为我自己的自定义类?

1 个答案:

答案 0 :(得分:7)

来自http://download.oracle.com/javase/1.4.2/docs/api/javax/net/ssl/SSLSocketFactory.html

  

(...)默认实现可以   通过设置的值来改变   “ssl.SocketFactory.provider”安全性   属性(在Java安全性中   属性文件)到所需的类。

有关定义自己的安全策略文件的更多信息,请访问http://download.oracle.com/javase/1.4.2/docs/guide/security/PolicyFiles.html

您似乎只能在JSM级别更改该属性,而不能在每个项目中更改。在Windows中,您可以在Java \ jre6 \ lib \ security \ java.security。

中找到该文件