Skip to content

Commit 61a85fd

Browse files
committed
Must sign S3 requests with Date header even though it is not present in headers
1 parent 55d4128 commit 61a85fd

File tree

2 files changed

+18
-16
lines changed

2 files changed

+18
-16
lines changed

lib/signers/s3.js

+3-1
Original file line numberDiff line numberDiff line change
@@ -73,7 +73,9 @@ AWS.Signers.S3 = inherit(AWS.Signers.RequestSigner, {
7373
parts.push(r.method);
7474
parts.push(r.headers['Content-MD5'] || '');
7575
parts.push(r.headers['Content-Type'] || '');
76-
parts.push(r.headers['X-Amz-Date'] || '');
76+
parts.push(''); // This is the "Date" header, but we use X-Amz-Date.
77+
// The S3 signing mechanism requires us to pass an empty
78+
// string for this Date header regardless.
7779
var headers = this.canonicalizedAmzHeaders();
7880
if (headers) parts.push(headers);
7981
parts.push(this.canonicalizedResource());

test/signers/s3.spec.coffee

+15-15
Original file line numberDiff line numberDiff line change
@@ -110,7 +110,7 @@ describe 'AWS.Signers.S3', ->
110110
POST
111111
112112
113-
DATE-STRING
113+
114114
x-amz-date:DATE-STRING
115115
/
116116
""")
@@ -122,7 +122,7 @@ describe 'AWS.Signers.S3', ->
122122
POST
123123
CONTENT-MD5
124124
CONTENT-TYPE
125-
DATE-STRING
125+
126126
x-amz-date:DATE-STRING
127127
/
128128
""")
@@ -133,7 +133,7 @@ describe 'AWS.Signers.S3', ->
133133
VERB
134134
135135
136-
DATE-STRING
136+
137137
x-amz-date:DATE-STRING
138138
/
139139
""")
@@ -146,7 +146,7 @@ describe 'AWS.Signers.S3', ->
146146
POST
147147
148148
149-
DATE-STRING
149+
150150
x-amz-abc:abc
151151
x-amz-date:DATE-STRING
152152
x-amz-xyz:xyz
@@ -161,7 +161,7 @@ describe 'AWS.Signers.S3', ->
161161
POST
162162
163163
164-
DATE-STRING
164+
165165
x-amz-abc:abc
166166
x-amz-date:DATE-STRING
167167
x-amz-xyz:xyz
@@ -176,7 +176,7 @@ describe 'AWS.Signers.S3', ->
176176
POST
177177
178178
179-
DATE-STRING
179+
180180
x-amz-abc:abc
181181
x-amz-date:DATE-STRING
182182
x-amz-mno:mno
@@ -190,7 +190,7 @@ describe 'AWS.Signers.S3', ->
190190
POST
191191
192192
193-
DATE-STRING
193+
194194
x-amz-date:DATE-STRING
195195
/bucket_name/key
196196
""")
@@ -202,7 +202,7 @@ describe 'AWS.Signers.S3', ->
202202
POST
203203
204204
205-
DATE-STRING
205+
206206
x-amz-date:DATE-STRING
207207
/bucket-name/
208208
""")
@@ -214,7 +214,7 @@ describe 'AWS.Signers.S3', ->
214214
POST
215215
216216
217-
DATE-STRING
217+
218218
x-amz-date:DATE-STRING
219219
/bucket-name/?acl
220220
""")
@@ -225,7 +225,7 @@ describe 'AWS.Signers.S3', ->
225225
POST
226226
227227
228-
DATE-STRING
228+
229229
x-amz-date:DATE-STRING
230230
/bucket_name/key?versionId=123
231231
""")
@@ -236,7 +236,7 @@ describe 'AWS.Signers.S3', ->
236236
POST
237237
238238
239-
DATE-STRING
239+
240240
x-amz-date:DATE-STRING
241241
/?versionId=abc
242242
""")
@@ -247,7 +247,7 @@ describe 'AWS.Signers.S3', ->
247247
POST
248248
249249
250-
DATE-STRING
250+
251251
x-amz-date:DATE-STRING
252252
/?acl&logging&torrent=123&website
253253
""")
@@ -258,7 +258,7 @@ describe 'AWS.Signers.S3', ->
258258
POST
259259
260260
261-
DATE-STRING
261+
262262
x-amz-date:DATE-STRING
263263
/?acl&logging&torrent=123&website
264264
""")
@@ -269,7 +269,7 @@ describe 'AWS.Signers.S3', ->
269269
POST
270270
271271
272-
DATE-STRING
272+
273273
x-amz-date:DATE-STRING
274274
/?versionId=a%2Bb
275275
""")
@@ -280,7 +280,7 @@ describe 'AWS.Signers.S3', ->
280280
POST
281281
282282
283-
DATE-STRING
283+
284284
x-amz-date:DATE-STRING
285285
/?response-content-type=a+b
286286
""")

0 commit comments

Comments
 (0)