使用Spring开发期间需要信任所有证书

我读了这篇非常有用的文章,关于以编程方式禁用所有https证书。 我只在开发中需要这样的方法。 我正在使用Spring。 那么有没有人有关于如何在Spring上下文文件中而不是在Java代码中执行相同操作的想法? 我的意思是代码的这个特定部分:

SSLContext sc = SSLContext.getInstance("SSL"); sc.init(null, trustAllCerts, new java.security.SecureRandom()); HttpsURLConnection.setDefaultSSLSocketFactory(sc.getSocketFactory()); 

实际上,我可以模拟第一行:类似的东西:

    

另外,我可以创建这个trustAllCerts bean。 但是……我很困惑..有可能在spring上下文初始化中调用bean的某个方法吗? 我的意思是如何在spring上下文文件中调用sc.init和sc.getSocketFactory? 这不可能吗?

是的 – 您可以使用init-method属性。 查看Initialization回调 。 但这个界面还不够。 我建议只需放置此代码

 SSLContext sc = SSLContext.getInstance("SSL"); sc.init(null, trustAllCerts, new java.security.SecureRandom()); HttpsURLConnection.setDefaultSSLSocketFactory(sc.getSocketFactory()); 

在您的自定义类中,它将知道您处于开发模式或wchich将具有此类init方法。 BTW调用getSocketFactory很简单 – 这只是获取socketFactory属性。