我正在尝试创建自己的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
。如何将其更改为我自己的自定义类?
答案 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。
中找到该文件