[JCLOUDS-898] Allow insecure connection in Docker. Original author was @andreaturli and the original patch was #172.
Project: http://git-wip-us.apache.org/repos/asf/jclouds/repo Commit: http://git-wip-us.apache.org/repos/asf/jclouds/commit/586e3180 Tree: http://git-wip-us.apache.org/repos/asf/jclouds/tree/586e3180 Diff: http://git-wip-us.apache.org/repos/asf/jclouds/diff/586e3180 Branch: refs/heads/master Commit: 586e31805ad710169b29303028289f6ad396725d Parents: 55a7d8c Author: Ignasi Barrera <[email protected]> Authored: Fri Aug 14 10:44:06 2015 +0200 Committer: Ignasi Barrera <[email protected]> Committed: Fri Aug 14 10:56:07 2015 +0200 ---------------------------------------------------------------------- .../docker/config/DockerOkHttpClientSupplier.java | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/jclouds/blob/586e3180/apis/docker/src/main/java/org/jclouds/docker/config/DockerOkHttpClientSupplier.java ---------------------------------------------------------------------- diff --git a/apis/docker/src/main/java/org/jclouds/docker/config/DockerOkHttpClientSupplier.java b/apis/docker/src/main/java/org/jclouds/docker/config/DockerOkHttpClientSupplier.java index 6bc171f..f9278f0 100644 --- a/apis/docker/src/main/java/org/jclouds/docker/config/DockerOkHttpClientSupplier.java +++ b/apis/docker/src/main/java/org/jclouds/docker/config/DockerOkHttpClientSupplier.java @@ -16,12 +16,17 @@ */ package org.jclouds.docker.config; +import java.io.File; + import javax.inject.Inject; import javax.inject.Singleton; import org.jclouds.docker.suppliers.DockerSSLContextSupplier; +import org.jclouds.domain.Credentials; import org.jclouds.http.okhttp.OkHttpClientSupplier; +import org.jclouds.location.Provider; +import com.google.common.base.Supplier; import com.google.common.collect.ImmutableList; import com.squareup.okhttp.ConnectionSpec; import com.squareup.okhttp.OkHttpClient; @@ -31,10 +36,12 @@ import com.squareup.okhttp.TlsVersion; public class DockerOkHttpClientSupplier implements OkHttpClientSupplier { private final DockerSSLContextSupplier dockerSSLContextSupplier; + private final Supplier<Credentials> creds; @Inject - DockerOkHttpClientSupplier(DockerSSLContextSupplier dockerSSLContextSupplier) { + DockerOkHttpClientSupplier(DockerSSLContextSupplier dockerSSLContextSupplier, @Provider Supplier<Credentials> creds) { this.dockerSSLContextSupplier = dockerSSLContextSupplier; + this.creds = creds; } @Override @@ -46,7 +53,10 @@ public class DockerOkHttpClientSupplier implements OkHttpClientSupplier { ConnectionSpec cleartextSpec = new ConnectionSpec.Builder(ConnectionSpec.CLEARTEXT) .build(); client.setConnectionSpecs(ImmutableList.of(tlsSpec, cleartextSpec)); - client.setSslSocketFactory(dockerSSLContextSupplier.get().getSocketFactory()); + // check if identity and credential are files, to set up sslContext + if (new File(creds.get().identity).isFile() && new File(creds.get().credential).isFile()) { + client.setSslSocketFactory(dockerSSLContextSupplier.get().getSocketFactory()); + } return client; }
