Skip to content

Commit 06d6e4a

Browse files
authored
Merge pull request #141 from scottslewis/sslcontext
Added support for usage of sslContextFactory.getInstance(protocol) and
2 parents 5794d20 + 02c9568 commit 06d6e4a

File tree

3 files changed

+26
-4
lines changed

3 files changed

+26
-4
lines changed

providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclientjava/src/org/eclipse/ecf/internal/provider/filetransfer/httpclientjava/ECFHttpClientFactory.java

+17-3
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@
2727

2828
import org.eclipse.core.runtime.IStatus;
2929
import org.eclipse.core.runtime.Status;
30+
import org.eclipse.ecf.core.security.SSLContextFactory;
3031
import org.eclipse.ecf.core.util.Trace;
3132
import org.eclipse.ecf.internal.provider.filetransfer.DebugOptions;
3233
import org.eclipse.ecf.provider.filetransfer.httpclientjava.HttpClientOptions;
@@ -50,12 +51,25 @@ public class ECFHttpClientFactory implements IHttpClientFactory {
5051

5152
@Override
5253
public HttpClient.Builder newClient() {
53-
5454
HttpClient.Builder builder = HttpClient.newBuilder().followRedirects(Redirect.NORMAL);
55+
String sslContextProvider = HttpClientOptions.HTTPCLIENT_SSLCONTEXT_PROVIDER;
56+
String sslContextProtocol = HttpClientOptions.HTTPCLIENT_SSLCONTEXT_PROTOCOL;
57+
SSLContextFactory sslContextFactory = Activator.getDefault().getSSLContextFactory();
5558
try {
56-
builder.sslContext(Activator.getDefault().getSSLContextFactory().getDefault());
59+
if (sslContextProvider == null) {
60+
if (sslContextProtocol == null) {
61+
builder.sslContext(sslContextFactory.getDefault());
62+
} else {
63+
builder.sslContext(sslContextFactory.getInstance(sslContextProtocol));
64+
}
65+
} else {
66+
if (sslContextProtocol == null)
67+
throw new NoSuchProviderException("Null protocol not supported for provider=" + sslContextProvider);
68+
builder.sslContext(sslContextFactory.getInstance(sslContextProtocol, sslContextProvider));
69+
}
5770
} catch (NoSuchAlgorithmException | NoSuchProviderException e) {
58-
Activator.getDefault().log(new Status(IStatus.ERROR,Activator.PLUGIN_ID,"Could not set SSLContext when creating jre HttpClient", e));
71+
Activator.getDefault().log(new Status(IStatus.ERROR, Activator.PLUGIN_ID,
72+
"Could not set SSLContext when creating jre HttpClient", e));
5973
}
6074
builder = Activator.getDefault().runModifiers(builder, new ModifierRunner<HttpClient.Builder>() {
6175
@Override

providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclientjava/src/org/eclipse/ecf/provider/filetransfer/httpclientjava/HttpClientOptions.java

+9
Original file line numberDiff line numberDiff line change
@@ -33,4 +33,13 @@ public interface HttpClientOptions {
3333
int NTLM_PROXY_RESPONSE_CODE = 477;
3434
String FORCE_NTLM_PROP = "org.eclipse.ecf.provider.filetransfer.httpclient4.options.ForceNTLMProxy"; //$NON-NLS-1$
3535

36+
/**
37+
* @since 2.0
38+
*/
39+
String HTTPCLIENT_SSLCONTEXT_PROTOCOL = System.getProperty("org.eclipse.ecf.provider.filetransfer.httpclient.sslcontext.protocol"); //$NON-NLS-1$
40+
41+
/**
42+
* @since 2.0
43+
*/
44+
String HTTPCLIENT_SSLCONTEXT_PROVIDER = System.getProperty("org.eclipse.ecf.provider.filetransfer.httpclient.sslcontext.provider"); //$NON-NLS-1$
3645
}

releng/org.eclipse.ecf.releng.target/ecf-2024-06.target

-1
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,6 @@
3737
<unit id="org.apache.httpcomponents.httpclient" version="0.0.0"/>
3838
<unit id="org.apache.httpcomponents.httpclient.win" version="0.0.0"/>
3939
<unit id="org.apache.log4j" version="0.0.0"/>
40-
<unit id="org.apache.lucene.analysis-smartcn" version="0.0.0"/>
4140
<unit id="org.apiguardian.api" version="0.0.0"/>
4241
<unit id="org.bndtools.headless.build.plugin.gradle" version="0.0.0"/>
4342
<unit id="org.bndtools.templates.template" version="0.0.0"/>

0 commit comments

Comments
 (0)