Repository: jclouds Updated Branches: refs/heads/master fdec2fa99 -> 0f77386c7
JCLOUDS-766: JCLOUDS-1090: Use AWS v4 signature Previous commits added support for v4 but did not default to it. URL signing continues to use v2 signatures due to a conflict between PUT requests and v4 content signing. Addresses AWSS3ServiceIntegrationLiveTest.testAllLocations test failures. Project: http://git-wip-us.apache.org/repos/asf/jclouds/repo Commit: http://git-wip-us.apache.org/repos/asf/jclouds/commit/0f77386c Tree: http://git-wip-us.apache.org/repos/asf/jclouds/tree/0f77386c Diff: http://git-wip-us.apache.org/repos/asf/jclouds/diff/0f77386c Branch: refs/heads/master Commit: 0f77386c77ce6ece4831426b26dfd80738bc30bb Parents: fdec2fa Author: Andrew Gaul <[email protected]> Authored: Thu Mar 17 23:03:36 2016 -0700 Committer: Andrew Gaul <[email protected]> Committed: Sun Mar 27 16:27:30 2016 -0700 ---------------------------------------------------------------------- .../java/org/jclouds/aws/s3/config/AWSS3HttpApiModule.java | 4 ++-- .../src/test/java/org/jclouds/aws/s3/AWSS3ClientTest.java | 8 ++++++++ .../jclouds/aws/s3/blobstore/AWSS3BlobSignerExpectTest.java | 9 +++++++++ .../jclouds/aws/s3/internal/BaseAWSS3ClientExpectTest.java | 9 +++++++++ 4 files changed, 28 insertions(+), 2 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/jclouds/blob/0f77386c/providers/aws-s3/src/main/java/org/jclouds/aws/s3/config/AWSS3HttpApiModule.java ---------------------------------------------------------------------- diff --git a/providers/aws-s3/src/main/java/org/jclouds/aws/s3/config/AWSS3HttpApiModule.java b/providers/aws-s3/src/main/java/org/jclouds/aws/s3/config/AWSS3HttpApiModule.java index d9338e6..3921c83 100644 --- a/providers/aws-s3/src/main/java/org/jclouds/aws/s3/config/AWSS3HttpApiModule.java +++ b/providers/aws-s3/src/main/java/org/jclouds/aws/s3/config/AWSS3HttpApiModule.java @@ -21,7 +21,7 @@ import static org.jclouds.aws.domain.Region.US_STANDARD; import javax.inject.Singleton; import org.jclouds.aws.s3.AWSS3Client; -import org.jclouds.aws.s3.filters.AWSRequestAuthorizeSignature; +import org.jclouds.aws.s3.filters.AWSRequestAuthorizeSignatureV4; import org.jclouds.aws.s3.predicates.validators.AWSS3BucketNameValidator; import org.jclouds.location.Region; import org.jclouds.rest.ConfiguresHttpApi; @@ -58,7 +58,7 @@ public class AWSS3HttpApiModule extends S3HttpApiModule<AWSS3Client> { @Override protected void bindRequestSigner() { - bind(RequestAuthorizeSignature.class).to(AWSRequestAuthorizeSignature.class).in(Scopes.SINGLETON); + bind(RequestAuthorizeSignature.class).to(AWSRequestAuthorizeSignatureV4.class).in(Scopes.SINGLETON); } @Singleton http://git-wip-us.apache.org/repos/asf/jclouds/blob/0f77386c/providers/aws-s3/src/test/java/org/jclouds/aws/s3/AWSS3ClientTest.java ---------------------------------------------------------------------- diff --git a/providers/aws-s3/src/test/java/org/jclouds/aws/s3/AWSS3ClientTest.java b/providers/aws-s3/src/test/java/org/jclouds/aws/s3/AWSS3ClientTest.java index f260c59..4d58afb 100644 --- a/providers/aws-s3/src/test/java/org/jclouds/aws/s3/AWSS3ClientTest.java +++ b/providers/aws-s3/src/test/java/org/jclouds/aws/s3/AWSS3ClientTest.java @@ -37,6 +37,7 @@ import org.jclouds.s3.S3Client; import org.jclouds.s3.S3ClientTest; import org.jclouds.s3.domain.S3Object; import org.jclouds.s3.fallbacks.FalseIfBucketAlreadyOwnedByYouOrOperationAbortedWhenBucketExists; +import org.jclouds.s3.filters.RequestAuthorizeSignature; import org.jclouds.s3.options.CopyObjectOptions; import org.jclouds.s3.options.PutBucketOptions; import org.jclouds.s3.options.PutObjectOptions; @@ -52,6 +53,7 @@ import com.google.common.collect.ImmutableMap; import com.google.common.collect.Lists; import com.google.common.reflect.Invokable; import com.google.inject.Module; +import com.google.inject.Scopes; // NOTE:without testName, this will not call @Before* and fail w/NPE during // surefire @@ -194,6 +196,12 @@ public class AWSS3ClientTest extends S3ClientTest<AWSS3Client> { protected String provideTimeStamp(@TimeStamp Supplier<String> cache) { return "2009-11-08T15:54:08.897Z"; } + + // subclass expects v2 signatures + @Override + protected void bindRequestSigner() { + bind(RequestAuthorizeSignature.class).to(AWSRequestAuthorizeSignature.class).in(Scopes.SINGLETON); + } } @Override http://git-wip-us.apache.org/repos/asf/jclouds/blob/0f77386c/providers/aws-s3/src/test/java/org/jclouds/aws/s3/blobstore/AWSS3BlobSignerExpectTest.java ---------------------------------------------------------------------- diff --git a/providers/aws-s3/src/test/java/org/jclouds/aws/s3/blobstore/AWSS3BlobSignerExpectTest.java b/providers/aws-s3/src/test/java/org/jclouds/aws/s3/blobstore/AWSS3BlobSignerExpectTest.java index a9bca53..dfe4c7a 100644 --- a/providers/aws-s3/src/test/java/org/jclouds/aws/s3/blobstore/AWSS3BlobSignerExpectTest.java +++ b/providers/aws-s3/src/test/java/org/jclouds/aws/s3/blobstore/AWSS3BlobSignerExpectTest.java @@ -19,16 +19,19 @@ package org.jclouds.aws.s3.blobstore; import static org.testng.Assert.assertEquals; import org.jclouds.aws.s3.config.AWSS3HttpApiModule; +import org.jclouds.aws.s3.filters.AWSRequestAuthorizeSignature; import org.jclouds.blobstore.BlobStore; import org.jclouds.blobstore.domain.Blob; import org.jclouds.date.TimeStamp; import org.jclouds.http.HttpRequest; import org.jclouds.rest.ConfiguresHttpApi; import org.jclouds.s3.blobstore.S3BlobSignerExpectTest; +import org.jclouds.s3.filters.RequestAuthorizeSignature; import org.testng.annotations.Test; import com.google.common.base.Supplier; import com.google.inject.Module; +import com.google.inject.Scopes; @Test(groups = "unit", testName = "AWSS3BlobSignerExpectTest") public class AWSS3BlobSignerExpectTest extends S3BlobSignerExpectTest { @@ -131,5 +134,11 @@ public class AWSS3BlobSignerExpectTest extends S3BlobSignerExpectTest { protected String provideTimeStamp(@TimeStamp Supplier<String> cache) { return DATE; } + + // subclass expects v2 signatures + @Override + protected void bindRequestSigner() { + bind(RequestAuthorizeSignature.class).to(AWSRequestAuthorizeSignature.class).in(Scopes.SINGLETON); + } } } http://git-wip-us.apache.org/repos/asf/jclouds/blob/0f77386c/providers/aws-s3/src/test/java/org/jclouds/aws/s3/internal/BaseAWSS3ClientExpectTest.java ---------------------------------------------------------------------- diff --git a/providers/aws-s3/src/test/java/org/jclouds/aws/s3/internal/BaseAWSS3ClientExpectTest.java b/providers/aws-s3/src/test/java/org/jclouds/aws/s3/internal/BaseAWSS3ClientExpectTest.java index ce0b1a5..73969ca 100644 --- a/providers/aws-s3/src/test/java/org/jclouds/aws/s3/internal/BaseAWSS3ClientExpectTest.java +++ b/providers/aws-s3/src/test/java/org/jclouds/aws/s3/internal/BaseAWSS3ClientExpectTest.java @@ -19,13 +19,16 @@ package org.jclouds.aws.s3.internal; import org.jclouds.aws.s3.AWSS3Client; import org.jclouds.aws.s3.AWSS3ProviderMetadata; import org.jclouds.aws.s3.config.AWSS3HttpApiModule; +import org.jclouds.aws.s3.filters.AWSRequestAuthorizeSignature; import org.jclouds.date.TimeStamp; import org.jclouds.providers.ProviderMetadata; import org.jclouds.rest.ConfiguresHttpApi; import org.jclouds.rest.internal.BaseRestApiExpectTest; +import org.jclouds.s3.filters.RequestAuthorizeSignature; import com.google.common.base.Supplier; import com.google.inject.Module; +import com.google.inject.Scopes; /** * Base class for writing Expect tests for AWS-S3 @@ -50,6 +53,12 @@ public class BaseAWSS3ClientExpectTest extends BaseRestApiExpectTest<AWSS3Client protected String provideTimeStamp(@TimeStamp Supplier<String> cache) { return CONSTANT_DATE; } + + // subclass expects v2 signatures + @Override + protected void bindRequestSigner() { + bind(RequestAuthorizeSignature.class).to(AWSRequestAuthorizeSignature.class).in(Scopes.SINGLETON); + } } @Override
