From 18d657bc03a09299f19d235a4229824c6875b8ad Mon Sep 17 00:00:00 2001 From: Lauren Spiegel Date: Sat, 6 Aug 2016 10:07:23 -0700 Subject: [PATCH] Pull all required headers to be signed. Fixes scality/S3#120 --- lib/auth/auth.js | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/lib/auth/auth.js b/lib/auth/auth.js index d2d95b49b..40a88df29 100644 --- a/lib/auth/auth.js +++ b/lib/auth/auth.js @@ -98,7 +98,6 @@ auth.generateV4Headers = const amzDate = convertUTCtoISO8601(Date.now()); // get date without time const scopeDate = amzDate.slice(0, amzDate.indexOf('T')); - const signedHeaders = 'host;x-amz-date;x-amz-content-sha256'; const region = 'us-east-1'; const service = awsService || 'iam'; const credentialScope = @@ -117,11 +116,12 @@ auth.generateV4Headers = request.setHeader('host', request._headers.host); request.setHeader('x-amz-date', amzDate); request.setHeader('x-amz-content-sha256', payloadChecksum); - Object.assign(request.headers, { host: request.getHeader('host') }); - Object.assign(request.headers, { 'x-amz-date': amzDate }); - Object.assign(request.headers, - { 'x-amz-content-sha256': payloadChecksum }); - + Object.assign(request.headers, request._headers); + const signedHeaders = Object.keys(request._headers) + .filter(headerName => + headerName.startsWith('x-amz-') || headerName.startsWith('x-scal-') + || headerName === 'host' + ).sort().join(';'); const params = { request, signedHeaders, payloadChecksum, credentialScope, timestamp, query: data, awsService: service };