From d094c0122fe7a04c6fcafe71c9f0c972d11df198 Mon Sep 17 00:00:00 2001 From: Ryan Moore Date: Wed, 30 Mar 2016 15:34:58 -0600 Subject: [PATCH 1/2] If the host field has http:// it will be removed when put into the Host header --- .../spectralogic/ds3client/networking/NetUtils.java | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/ds3-sdk/src/main/java/com/spectralogic/ds3client/networking/NetUtils.java b/ds3-sdk/src/main/java/com/spectralogic/ds3client/networking/NetUtils.java index 5a834ddc2..428a29e07 100644 --- a/ds3-sdk/src/main/java/com/spectralogic/ds3client/networking/NetUtils.java +++ b/ds3-sdk/src/main/java/com/spectralogic/ds3client/networking/NetUtils.java @@ -120,7 +120,16 @@ private static String bucketPath(final String bucket) { } public static String buildHostField(final ConnectionDetails details) { - return details.getEndpoint(); + return filterHttp(details.getEndpoint()); + } + + public static String filterHttp(final String url) { + if (url.startsWith("http://") || url.startsWith("https://")) + { + final int colonIndex = url.indexOf(":"); + return url.substring(colonIndex + 3); + } + return url; } public static int getPort(final URL url) { From 828c45494cbe0ed22bf56a2024a75d1c376b3b13 Mon Sep 17 00:00:00 2001 From: Ryan Moore Date: Wed, 30 Mar 2016 17:00:03 -0600 Subject: [PATCH 2/2] Adding unit test to verify the host header fix --- .../com/spectralogic/ds3client/ConnectionFixture.java | 8 ++++++++ .../com/spectralogic/ds3client/utils/NetUtils_Test.java | 6 ++++++ 2 files changed, 14 insertions(+) diff --git a/ds3-sdk/src/test/java/com/spectralogic/ds3client/ConnectionFixture.java b/ds3-sdk/src/test/java/com/spectralogic/ds3client/ConnectionFixture.java index cb131ea6d..72e574d80 100644 --- a/ds3-sdk/src/test/java/com/spectralogic/ds3client/ConnectionFixture.java +++ b/ds3-sdk/src/test/java/com/spectralogic/ds3client/ConnectionFixture.java @@ -27,4 +27,12 @@ public static ConnectionDetails getConnection() { public static ConnectionDetails getConnection(final int port) { return ConnectionDetailsImpl.builder("localhost:" + port, new Credentials("id", "key")).build(); } + + public static ConnectionDetails getHttpConnection() { + return getHttpConnection(8080); + } + + public static ConnectionDetails getHttpConnection(final int port) { + return ConnectionDetailsImpl.builder("http://localhost:" + port, new Credentials("id", "key")).build(); + } } diff --git a/ds3-sdk/src/test/java/com/spectralogic/ds3client/utils/NetUtils_Test.java b/ds3-sdk/src/test/java/com/spectralogic/ds3client/utils/NetUtils_Test.java index 257db8542..5c615e574 100644 --- a/ds3-sdk/src/test/java/com/spectralogic/ds3client/utils/NetUtils_Test.java +++ b/ds3-sdk/src/test/java/com/spectralogic/ds3client/utils/NetUtils_Test.java @@ -167,6 +167,12 @@ public void getHttpDefaultPort() throws MalformedURLException { assertTrue(port == 80); } + @Test + public void buildHostFieldWithHttp() { + final String result = NetUtils.buildHostField(ConnectionFixture.getHttpConnection()); + assertThat(result, is("localhost:8080")); + } + @Test public void buildHost() throws MalformedURLException { final ConnectionDetails details = new ConnectionDetails() {