diff --git a/blobstore/src/main/java/org/jclouds/blobstore/TransientBlobRequestSigner.java b/blobstore/src/main/java/org/jclouds/blobstore/TransientBlobRequestSigner.java index 15faaaad3d..c81302f81a 100644 --- a/blobstore/src/main/java/org/jclouds/blobstore/TransientBlobRequestSigner.java +++ b/blobstore/src/main/java/org/jclouds/blobstore/TransientBlobRequestSigner.java @@ -31,6 +31,7 @@ import org.jclouds.blobstore.options.GetOptions; import org.jclouds.http.HttpRequest; import org.jclouds.http.HttpUtils; import org.jclouds.http.filters.BasicAuthentication; +import org.jclouds.location.Provider; /** * @@ -41,23 +42,25 @@ public class TransientBlobRequestSigner implements BlobRequestSigner { private final BasicAuthentication basicAuth; private final BlobToHttpGetOptions blob2HttpGetOptions; + private final String endpoint; @Inject - public TransientBlobRequestSigner(BasicAuthentication basicAuth, BlobToHttpGetOptions blob2HttpGetOptions) { + public TransientBlobRequestSigner(BasicAuthentication basicAuth, BlobToHttpGetOptions blob2HttpGetOptions, @Provider URI endpoint) { this.basicAuth = checkNotNull(basicAuth, "basicAuth"); this.blob2HttpGetOptions = checkNotNull(blob2HttpGetOptions, "blob2HttpGetOptions"); + this.endpoint = endpoint.toString(); } @Override public HttpRequest signGetBlob(String container, String name) { - HttpRequest request = new HttpRequest("GET", URI.create(String.format("http://localhost/%s/%s", container, name))); + HttpRequest request = new HttpRequest("GET", URI.create(String.format("%s/%s/%s", endpoint, container, name))); return basicAuth.filter(request); } @Override public HttpRequest signPutBlob(String container, Blob blob) { HttpRequest request = HttpRequest.builder().method("PUT").endpoint( - URI.create(String.format("http://localhost/%s/%s", container, blob.getMetadata().getName()))).payload( + URI.create(String.format("%s/%s/%s", endpoint, container, blob.getMetadata().getName()))).payload( blob.getPayload()).headers( HttpUtils.getContentHeadersFromMetadata(blob.getMetadata().getContentMetadata())).build(); return basicAuth.filter(request); @@ -65,7 +68,7 @@ public class TransientBlobRequestSigner implements BlobRequestSigner { @Override public HttpRequest signRemoveBlob(String container, String name) { - HttpRequest request = new HttpRequest("DELETE", URI.create(String.format("http://localhost/%s/%s", container, + HttpRequest request = new HttpRequest("DELETE", URI.create(String.format("%s/%s/%s", endpoint, container, name))); return basicAuth.filter(request); } @@ -73,7 +76,7 @@ public class TransientBlobRequestSigner implements BlobRequestSigner { @Override public HttpRequest signGetBlob(String container, String name, GetOptions options) { HttpRequest request = HttpRequest.builder().method("GET").endpoint( - URI.create(String.format("http://localhost/%s/%s", container, name))).headers( + URI.create(String.format("%s/%s/%s", endpoint, container, name))).headers( blob2HttpGetOptions.apply(options).buildRequestHeaders()).build(); return basicAuth.filter(request); } diff --git a/blobstore/src/main/java/org/jclouds/blobstore/TransientBlobStorePropertiesBuilder.java b/blobstore/src/main/java/org/jclouds/blobstore/TransientBlobStorePropertiesBuilder.java index 4836a352bd..e33d6a20a1 100644 --- a/blobstore/src/main/java/org/jclouds/blobstore/TransientBlobStorePropertiesBuilder.java +++ b/blobstore/src/main/java/org/jclouds/blobstore/TransientBlobStorePropertiesBuilder.java @@ -37,7 +37,7 @@ public class TransientBlobStorePropertiesBuilder extends PropertiesBuilder { @Override protected Properties defaultProperties() { Properties properties = super.defaultProperties(); - properties.setProperty(PROPERTY_ENDPOINT, "http://localhost/transient"); + properties.setProperty(PROPERTY_ENDPOINT, "http://localhost"); properties.setProperty(PROPERTY_API_VERSION, "1"); properties.setProperty(PROPERTY_IDENTITY, System.getProperty("user.name")); properties.setProperty(PROPERTY_USER_THREADS, "0"); diff --git a/blobstore/src/test/java/org/jclouds/blobstore/TransientBlobRequestSignerTest.java b/blobstore/src/test/java/org/jclouds/blobstore/TransientBlobRequestSignerTest.java index 59be3fd5fd..73c5a43ebc 100644 --- a/blobstore/src/test/java/org/jclouds/blobstore/TransientBlobRequestSignerTest.java +++ b/blobstore/src/test/java/org/jclouds/blobstore/TransientBlobRequestSignerTest.java @@ -48,12 +48,16 @@ public class TransientBlobRequestSignerTest extends RestClientTest blobFactory; + private final String endPoint = "http://localhost:8080"; + private final String containerName = "container"; + private final String blobName = "blob"; + private final String fullUrl = String.format("%s/%s/%s", endPoint, containerName, blobName); public void testSignGetBlob() throws ArrayIndexOutOfBoundsException, SecurityException, IllegalArgumentException, NoSuchMethodException, IOException { - HttpRequest request = signer.signGetBlob("container", "name"); + HttpRequest request = signer.signGetBlob(containerName, blobName); - assertRequestLineEquals(request, "GET http://localhost/container/name HTTP/1.1"); + assertRequestLineEquals(request, "GET " + fullUrl + " HTTP/1.1"); assertNonPayloadHeadersEqual(request, "Authorization: Basic aWRlbnRpdHk6Y3JlZGVudGlhbA==\n"); assertPayloadEquals(request, null, null, false); @@ -62,9 +66,9 @@ public class TransientBlobRequestSignerTest extends RestClientTest createContextSpec() { - return new RestContextFactory().createContextSpec("transient", "identity", "credential", new Properties()); + Properties properties = new Properties(); + properties.setProperty("transient.endpoint", endPoint); + return new RestContextFactory().createContextSpec("transient", "identity", "credential", properties); } @Override @@ -130,4 +136,4 @@ public class TransientBlobRequestSignerTest extends RestClientTest