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

Reply via email to