diff --git a/.changes/next-release/bugfix-Signer-bb5ba0f7.json b/.changes/next-release/bugfix-Signer-bb5ba0f7.json new file mode 100644 index 0000000000..6e05338b20 --- /dev/null +++ b/.changes/next-release/bugfix-Signer-bb5ba0f7.json @@ -0,0 +1,5 @@ +{ + "type": "bugfix", + "category": "Signer", + "description": "Fix the bug that httpChecksumRequired trait is not honored in SigV2" +} \ No newline at end of file diff --git a/lib/event_listeners.js b/lib/event_listeners.js index b40f88ec29..d89896ab78 100644 --- a/lib/event_listeners.js +++ b/lib/event_listeners.js @@ -147,7 +147,6 @@ AWS.EventListeners = { operation.httpChecksumRequired && req.service.config.computeChecksums && isNonStreamingPayload && - req.service.getSignerClass(req) === AWS.Signers.V4 && !headers['Content-MD5'] ) { var md5 = AWS.util.crypto.md5(body, 'base64'); diff --git a/lib/services/s3.js b/lib/services/s3.js index 2347a94eb7..2e63855ad8 100644 --- a/lib/services/s3.js +++ b/lib/services/s3.js @@ -430,21 +430,6 @@ AWS.util.update(AWS.S3.prototype, { } }, - /** - * @api private - */ - computableChecksumOperations: { - putBucketCors: true, - putBucketLifecycle: true, - putBucketLifecycleConfiguration: true, - putBucketTagging: true, - deleteObjects: true, - putBucketReplication: true, - putObjectLegalHold: true, - putObjectRetention: true, - putObjectLockConfiguration: true - }, - /** * Checks whether checksums should be computed for the request if it's not * already set by {AWS.EventListeners.Core.COMPUTE_CHECKSUM}. It depends on diff --git a/scripts/region-checker/allowlist.js b/scripts/region-checker/allowlist.js index f5453a3a07..c483b4de85 100644 --- a/scripts/region-checker/allowlist.js +++ b/scripts/region-checker/allowlist.js @@ -37,13 +37,13 @@ var allowlist = { 254, 267, 273, - 644, - 646, - 765, - 776, - 777, - 778, - 783 + 629, + 631, + 750, + 761, + 762, + 763, + 768 ] }; diff --git a/test/event_listeners.spec.js b/test/event_listeners.spec.js index 4d87272621..b2c444c136 100644 --- a/test/event_listeners.spec.js +++ b/test/event_listeners.spec.js @@ -392,6 +392,18 @@ }); }); + it('when using signature v2', function() { + var service = new FooService({ signatureVersion: 's3' }); + var req = service.putWithChecksum({ + Body: 'test' + }); + + req.runTo('sign', function(err) { + expect(req.httpRequest.headers['Content-MD5']).to.equal('mi9mZPtVgELD8CntO010Rw=='); + expect(!err).to.equal(true); + }); + }); + it('should be disabled if computeChecksums set to false', function() { var service = new FooService({ computeChecksums: false