我读到这个非常有用的article关于以编程方式禁用所有https证书。我只在开发中需要这样的方法。我正在使用Spring。那么有没有人有关于我如何才能在Spring上下文文件中执行相同操作的想法,而不是在Java代码中? 我的意思是代码的这一特定部分:
SSLContext sc = SSLContext.getInstance("SSL");
sc.init(null, trustAllCerts, new java.security.SecureRandom());
HttpsURLConnection.setDefaultSSLSocketFactory(sc.getSocketFactory());
实际上,我可以模拟第一行: 类似的东西:
<bean id="sslContext"
class="javax.net.ssl.SSLContext"
factory-method="getInstance">
<constructor-arg type="java.lang.String" value="SSL" />
</bean>
另外,我可以创建这个trustAllCerts bean。 但是......我很困惑..可以在spring上下文初始化中调用bean的某个方法吗?我的意思是如何在spring上下文文件中调用sc.init和sc.getSocketFactory?这是不可能的吗?
答案 0 :(得分:2)
是 - 您可以使用init-method
属性。看看Initialization callbacks。但这个界面还不够。我建议只需放置此代码
SSLContext sc = SSLContext.getInstance("SSL");
sc.init(null, trustAllCerts, new java.security.SecureRandom());
HttpsURLConnection.setDefaultSSLSocketFactory(sc.getSocketFactory());
在您的自定义类中,它将知道您处于开发模式或wchich将具有此类init方法。
BTW调用getSocketFactory
很简单 - 这只是获得socketFactory
属性。