diff options
author | slewis | 2015-09-10 21:06:07 +0000 |
---|---|---|
committer | slewis | 2015-09-10 21:06:07 +0000 |
commit | 05291eface2d7737e48fd9d8ced57a86c98bcf4f (patch) | |
tree | ab558237de8bee9d8cafca9359d84c54d42fdd3b /providers/bundles | |
parent | 1ccb057b6c90fed08030321bcd6cad22aca9085e (diff) | |
download | org.eclipse.ecf-05291eface2d7737e48fd9d8ced57a86c98bcf4f.tar.gz org.eclipse.ecf-05291eface2d7737e48fd9d8ced57a86c98bcf4f.tar.xz org.eclipse.ecf-05291eface2d7737e48fd9d8ced57a86c98bcf4f.zip |
Application of patch
https://bugs.eclipse.org/bugs/attachment.cgi?id=255750
from bug
https://bugs.eclipse.org/bugs/show_bug.cgi?id=471325
Change-Id: I475940eea8730020da8023591667288406aeb23c
Diffstat (limited to 'providers/bundles')
2 files changed, 32 insertions, 2 deletions
diff --git a/providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient4/src/org/eclipse/ecf/provider/filetransfer/httpclient4/HttpClientBrowseFileTransferFactory.java b/providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient4/src/org/eclipse/ecf/provider/filetransfer/httpclient4/HttpClientBrowseFileTransferFactory.java index ea022ba21..6f287eaaa 100644 --- a/providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient4/src/org/eclipse/ecf/provider/filetransfer/httpclient4/HttpClientBrowseFileTransferFactory.java +++ b/providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient4/src/org/eclipse/ecf/provider/filetransfer/httpclient4/HttpClientBrowseFileTransferFactory.java @@ -13,7 +13,14 @@ package org.eclipse.ecf.provider.filetransfer.httpclient4; import java.net.MalformedURLException; import java.net.URL; +import org.apache.http.conn.ClientConnectionManager; +import org.apache.http.conn.scheme.PlainSocketFactory; +import org.apache.http.conn.scheme.Scheme; +import org.apache.http.conn.scheme.SchemeRegistry; +import org.apache.http.conn.ssl.SSLContexts; +import org.apache.http.conn.ssl.SSLSocketFactory; import org.apache.http.impl.client.DefaultHttpClient; +import org.apache.http.impl.conn.BasicClientConnectionManager; import org.eclipse.core.runtime.Assert; import org.eclipse.ecf.core.identity.IDFactory; import org.eclipse.ecf.core.identity.Namespace; @@ -50,7 +57,18 @@ public class HttpClientBrowseFileTransferFactory implements IRemoteFileSystemBro throw new RemoteFileSystemException(NLS.bind("Exception creating URL for {0}", directoryOrFileId)); //$NON-NLS-1$ } - HttpClientFileSystemBrowser browser = new HttpClientFileSystemBrowser(new DefaultHttpClient(), directoryOrFileId, listener, url, connectContext, proxy); + HttpClientFileSystemBrowser browser = new HttpClientFileSystemBrowser(new DefaultHttpClient() { + @Override + protected ClientConnectionManager createClientConnectionManager() { + SSLSocketFactory factory = new SSLSocketFactory(SSLContexts.createSystemDefault(), SSLSocketFactory.BROWSER_COMPATIBLE_HOSTNAME_VERIFIER); + + final SchemeRegistry registry = new SchemeRegistry(); + registry.register(new Scheme("http", 80, PlainSocketFactory.getSocketFactory())); + registry.register(new Scheme("https", 443, factory)); + + return new BasicClientConnectionManager(registry); + } + }, directoryOrFileId, listener, url, connectContext, proxy); return browser.sendBrowseRequest(); } diff --git a/providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient4/src/org/eclipse/ecf/provider/filetransfer/httpclient4/HttpClientRetrieveFileTransferFactory.java b/providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient4/src/org/eclipse/ecf/provider/filetransfer/httpclient4/HttpClientRetrieveFileTransferFactory.java index 54150e74d..27276aa20 100644 --- a/providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient4/src/org/eclipse/ecf/provider/filetransfer/httpclient4/HttpClientRetrieveFileTransferFactory.java +++ b/providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient4/src/org/eclipse/ecf/provider/filetransfer/httpclient4/HttpClientRetrieveFileTransferFactory.java @@ -11,6 +11,11 @@ *****************************************************************************/ package org.eclipse.ecf.provider.filetransfer.httpclient4; +import org.apache.http.conn.scheme.PlainSocketFactory; +import org.apache.http.conn.scheme.Scheme; +import org.apache.http.conn.scheme.SchemeRegistry; +import org.apache.http.conn.ssl.SSLContexts; +import org.apache.http.conn.ssl.SSLSocketFactory; import org.apache.http.impl.client.DefaultHttpClient; import org.apache.http.impl.conn.SingleClientConnManager; import org.eclipse.ecf.filetransfer.service.IRetrieveFileTransfer; @@ -19,6 +24,13 @@ import org.eclipse.ecf.filetransfer.service.IRetrieveFileTransferFactory; public class HttpClientRetrieveFileTransferFactory implements IRetrieveFileTransferFactory { public IRetrieveFileTransfer newInstance() { - return new HttpClientRetrieveFileTransfer(new DefaultHttpClient(new SingleClientConnManager())); + + SSLSocketFactory factory = new SSLSocketFactory(SSLContexts.createSystemDefault(), SSLSocketFactory.BROWSER_COMPATIBLE_HOSTNAME_VERIFIER); + + final SchemeRegistry registry = new SchemeRegistry(); + registry.register(new Scheme("http", 80, PlainSocketFactory.getSocketFactory())); + registry.register(new Scheme("https", 443, factory)); + + return new HttpClientRetrieveFileTransfer(new DefaultHttpClient(new SingleClientConnManager(registry))); } } |