java sardine over ssl
我正在尝试沙丁鱼做一个webdav客户端,但它不连接到我的https服务器。 在使用指南中说这个关于SSL http://code.google.com/p/sardine/wiki/UsageGuide#SSL,但我不知道如何提供我的自定义Http客户端与我的密钥库。
我得到这个错误。
Exception in thread "main" javax.net.ssl.SSLPeerUnverifiedException: peer not authenticated at com.sun.net.ssl.internal.ssl.SSLSessionImpl.getPeerCertificates(Unknown Source) at org.apache.http.conn.ssl.AbstractVerifier.verify(AbstractVerifier.java:128) at org.apache.http.conn.ssl.SSLSocketFactory.connectSocket(SSLSocketFactory.java:397) at org.apache.http.impl.conn.DefaultClientConnectionOperator.openConnection(DefaultClientConnectionOperator.java:148) at org.apache.http.impl.conn.AbstractPoolEntry.open(AbstractPoolEntry.java:149) at org.apache.http.impl.conn.AbstractPooledConnAdapter.open(AbstractPooledConnAdapter.java:121) at org.apache.http.impl.client.DefaultRequestDirector.tryConnect(DefaultRequestDirector.java:573) at org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:425) at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:820) at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:941) at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:919) at com.googlecode.sardine.impl.SardineImpl.execute(SardineImpl.java:684) at com.googlecode.sardine.impl.SardineImpl.list(SardineImpl.java:339) at com.googlecode.sardine.impl.SardineImpl.getResources(SardineImpl.java:326) at sardine.main(sardine.java:15)
我如何设置?
很简单的例子(http://mydrive.net和Linux):
现在,您可以使用沙丁鱼而不用覆盖或重新实现方法。 只需使用
Sardine sardine = SardineFactory.begin(username, password);
List<DavResource> resources = sardine.list("https://webdav.mydrive.ch/");
提示:确保使用正确的证书。 例如MyDrive有几个证书
将密钥库存储为原始资源,加载它们并使用它们初始化SSLSocketFactory。 你可以用它来实例化一个HttpClient
。 要插入沙丁鱼,您需要覆盖他们在Wiki中指定的方法以返回您的自定义HttpClient
实例。