java类信任所有用于将文件发送到https Web服务

我需要编写自己的类来告诉mule https连接到服务(wsdl)已经过validation。 我已经有mule子项目接近完成但最后一块丢失,在特定url发送文件。

我想要实现的目标:

  1. 建立连接并将xml发送到目标URL

  2. 读取也在xml中的响应

服务器使用自签名证书的安全性。 到目前为止我所做的是我从该链接获得证书并将其导入.jks。 然后我可能跟随所有“教程”如何使用https连接器连接到mule服务器,但在我的情况下没有任何工作。

我认为最好的事情是,如果有人可以帮助我创建java类来绕过密钥检查并返回true(已validation)。 就像是:

URL url = new URL("https://www.google.com"); HttpsURLConnection conn= (HttpsURLConnection) url.openConnection(); conn.setHostnameVerifier(new HostnameVerifier() { @Override public boolean verify(String arg0, SSLSession arg1) { return true; } }); 

我怎么能在mule子那样做? 我希望它会是这样的 。

我正在使用当前的mule版本(3.5.0)

谢谢!

编辑:

我的配置:

            

对我有用的是在HTTPS连接器上设置TrustManagerFactory。 这是我如何做到的。

首先,创建一个包含要信任的SSL服务器证书的密钥库。 您可以使用JDK附带的工具创建密钥库( 这是一个示例 )。

然后,创建一个FactoryBean,在给定JKS密钥库和密码的情况下为您提供TrustManagerFactory。 这是我使用Spring资源的一个,所以我可以从类路径或文件系统提供密钥库:

 public class ExampleFactoryBean implements FactoryBean { private Resource keystore; private String password; @Override public TrustManagerFactory getObject() throws Exception { KeyStore truststore = KeyStore.getInstance("JKS"); truststore.load(keystore.getInputStream(), password.toCharArray()); TrustManagerFactory tmf = TrustManagerFactory.getInstance("SunX509"); tmf.init(truststore); return tmf; } @Override public Class getObjectType() { return TrustManagerFactory.class; } @Override public boolean isSingleton() { return true; } public void setKeystore(Resource keystore) { this.keystore = keystore; } public void setPassword(String password) { this.password = password; } } 

最后,在HTTP连接器上设置TrustManagerFactory,如下所示: