You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jclouds.apache.org by an...@apache.org on 2014/08/09 01:08:13 UTC

git commit: Parse Swift authentication headers case-insensitively

Repository: jclouds
Updated Branches:
  refs/heads/master 80a0256cc -> e532e6f26


Parse Swift authentication headers case-insensitively

Also ensure they are added to the result object with the normalized
capitalization expected by downstream code.

Follow-up to 375cb207.


Project: http://git-wip-us.apache.org/repos/asf/jclouds/repo
Commit: http://git-wip-us.apache.org/repos/asf/jclouds/commit/e532e6f2
Tree: http://git-wip-us.apache.org/repos/asf/jclouds/tree/e532e6f2
Diff: http://git-wip-us.apache.org/repos/asf/jclouds/diff/e532e6f2

Branch: refs/heads/master
Commit: e532e6f260c6070673ed9bb87294c4596e9e8b88
Parents: 80a0256
Author: Fabian Lange <la...@gmail.com>
Authored: Wed Aug 6 18:16:32 2014 +0200
Committer: Andrew Phillips <an...@apache.org>
Committed: Fri Aug 8 19:07:41 2014 -0400

----------------------------------------------------------------------
 .../ParseAuthenticationResponseFromHeaders.java | 12 +++++++---
 ...seAuthenticationResponseFromHeadersTest.java | 24 ++++++++++++++------
 2 files changed, 26 insertions(+), 10 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/jclouds/blob/e532e6f2/common/openstack/src/main/java/org/jclouds/openstack/functions/ParseAuthenticationResponseFromHeaders.java
----------------------------------------------------------------------
diff --git a/common/openstack/src/main/java/org/jclouds/openstack/functions/ParseAuthenticationResponseFromHeaders.java b/common/openstack/src/main/java/org/jclouds/openstack/functions/ParseAuthenticationResponseFromHeaders.java
index 26fb168..98780d5 100644
--- a/common/openstack/src/main/java/org/jclouds/openstack/functions/ParseAuthenticationResponseFromHeaders.java
+++ b/common/openstack/src/main/java/org/jclouds/openstack/functions/ParseAuthenticationResponseFromHeaders.java
@@ -20,7 +20,6 @@ import static com.google.common.base.Preconditions.checkNotNull;
 import static org.jclouds.http.HttpUtils.releasePayload;
 import static org.jclouds.http.Uris.uriBuilder;
 import static org.jclouds.openstack.reference.AuthHeaders.AUTH_TOKEN;
-import static org.jclouds.openstack.reference.AuthHeaders.URL_SUFFIX;
 
 import java.net.URI;
 import java.util.Map.Entry;
@@ -31,6 +30,7 @@ import org.jclouds.http.HttpRequest;
 import org.jclouds.http.HttpResponse;
 import org.jclouds.logging.Logger;
 import org.jclouds.openstack.domain.AuthenticationResponse;
+import org.jclouds.openstack.reference.AuthHeaders;
 import org.jclouds.rest.InvocationContext;
 
 import com.google.common.annotations.VisibleForTesting;
@@ -58,8 +58,14 @@ public class ParseAuthenticationResponseFromHeaders implements Function<HttpResp
       // HTTP headers are case insensitive (RFC 2616) so we must allow for that when looking an header names for the URL keyword
       Builder<String, URI> builder = ImmutableMap.builder();
       for (Entry<String, String> entry : from.getHeaders().entries()) {
-         if (entry.getKey().toLowerCase().endsWith(URL_SUFFIX.toLowerCase()))
-            builder.put(entry.getKey(), getURI(entry.getValue()));
+         String header = entry.getKey();
+         if (header.equalsIgnoreCase(AuthHeaders.STORAGE_URL)) {
+            builder.put(AuthHeaders.STORAGE_URL, getURI(entry.getValue()));
+         } else if (header.equalsIgnoreCase(AuthHeaders.SERVER_MANAGEMENT_URL)) {
+            builder.put(AuthHeaders.SERVER_MANAGEMENT_URL, getURI(entry.getValue()));
+         } else if (header.equalsIgnoreCase(AuthHeaders.CDN_MANAGEMENT_URL)) {
+            builder.put(AuthHeaders.CDN_MANAGEMENT_URL, getURI(entry.getValue()));
+         }
       }
       AuthenticationResponse response = new AuthenticationResponse(checkNotNull(from.getFirstHeaderOrNull(AUTH_TOKEN),
                AUTH_TOKEN), builder.build());

http://git-wip-us.apache.org/repos/asf/jclouds/blob/e532e6f2/common/openstack/src/test/java/org/jclouds/openstack/functions/ParseAuthenticationResponseFromHeadersTest.java
----------------------------------------------------------------------
diff --git a/common/openstack/src/test/java/org/jclouds/openstack/functions/ParseAuthenticationResponseFromHeadersTest.java b/common/openstack/src/test/java/org/jclouds/openstack/functions/ParseAuthenticationResponseFromHeadersTest.java
index 407abd6..e566ca0 100644
--- a/common/openstack/src/test/java/org/jclouds/openstack/functions/ParseAuthenticationResponseFromHeadersTest.java
+++ b/common/openstack/src/test/java/org/jclouds/openstack/functions/ParseAuthenticationResponseFromHeadersTest.java
@@ -23,9 +23,9 @@ import java.net.URI;
 import org.jclouds.Constants;
 import org.jclouds.http.HttpResponse;
 import org.jclouds.openstack.domain.AuthenticationResponse;
+import org.jclouds.openstack.reference.AuthHeaders;
 import org.testng.annotations.Test;
 
-import com.google.common.collect.ImmutableMap;
 import com.google.inject.AbstractModule;
 import com.google.inject.Guice;
 import com.google.inject.Injector;
@@ -53,11 +53,16 @@ public class ParseAuthenticationResponseFromHeadersTest {
       HttpResponse response = HttpResponse.builder().statusCode(204).message("No Content")
                                           .addHeader("X-Auth-Token", "token")
                                           .addHeader("X-Storage-Token", "token")
-                                          .addHeader("X-Storage-Url", "http://127.0.0.1:8080/v1/token").build();
+                                          .addHeader("X-Storage-Url", "http://127.0.0.1:8080/v1/token")
+                                          .addHeader("X-CDN-Management-Url", "http://127.0.0.1:8080/cdn-mgmt")
+                                          .addHeader("X-Server-Management-Url", "http://127.0.0.1:8080/srv-mgmt")
+                                          .build();
 
       AuthenticationResponse md = parser.apply(response);
-      assertEquals(md, new AuthenticationResponse("token", ImmutableMap.<String, URI> of("X-Storage-Url", 
-               URI.create("http://fooman:8080/v1/token"))));
+      assertEquals(md.getAuthToken(), "token");
+      assertEquals(md.getServices().get(AuthHeaders.STORAGE_URL), URI.create("http://fooman:8080/v1/token"));
+      assertEquals(md.getServices().get(AuthHeaders.CDN_MANAGEMENT_URL), URI.create("http://fooman:8080/cdn-mgmt"));
+      assertEquals(md.getServices().get(AuthHeaders.SERVER_MANAGEMENT_URL), URI.create("http://fooman:8080/srv-mgmt"));
    }
 
    public void testHandleHeadersCaseInsensitively() {
@@ -67,9 +72,14 @@ public class ParseAuthenticationResponseFromHeadersTest {
       HttpResponse response = HttpResponse.builder().statusCode(204).message("No Content")
               .addHeader("x-auth-token", "token")
               .addHeader("x-storage-token", "token")
-              .addHeader("x-storage-url", "http://127.0.0.1:8080/v1/token").build();
+              .addHeader("x-storage-url", "http://127.0.0.1:8080/v1/token")
+              .addHeader("x-cdn-management-url", "http://127.0.0.1:8080/cdn-mgmt")
+              .addHeader("x-server-management-url", "http://127.0.0.1:8080/srv-mgmt")
+              .build();
       AuthenticationResponse md = parser.apply(response);
-      assertEquals(md, new AuthenticationResponse("token", ImmutableMap.<String, URI> of("x-storage-url", 
-              URI.create("http://fooman:8080/v1/token"))));
+      assertEquals(md.getAuthToken(), "token");
+      assertEquals(md.getServices().get(AuthHeaders.STORAGE_URL), URI.create("http://fooman:8080/v1/token"));
+      assertEquals(md.getServices().get(AuthHeaders.CDN_MANAGEMENT_URL), URI.create("http://fooman:8080/cdn-mgmt"));
+      assertEquals(md.getServices().get(AuthHeaders.SERVER_MANAGEMENT_URL), URI.create("http://fooman:8080/srv-mgmt"));
    }
 }