diff --git a/lib/parser.js b/lib/parser.js index 88da2bf..899ae54 100644 --- a/lib/parser.js +++ b/lib/parser.js @@ -31,7 +31,7 @@ module.exports = { throw new MissingRequiredHeadersError('authorization'); } - const { algorithms, requestLifetime = 300 } = options; + const { algorithms, requestLifetime = 300, requiredHeaders=['date'] } = options; /* Check the authorization scheme */ let { authorization } = req.headers; @@ -66,7 +66,13 @@ module.exports = { /* If "headers" param not exists use the date HTTP header by default */ signatureParams.headers = signatureParams.headers ? signatureParams.headers.toLowerCase().split(' ') : ['date']; - + + /* Check if "required headers" param not exists use the date HTTP header by default */ + requiredHeaders.forEach(function (requiredHeader){ + if(signatureParams.headers.indexOf(requiredHeader) === -1){ + throw new MissingRequiredSignatureParamsError(...requiredHeader); + } + }); /* Check algoritm */ if (algorithms.indexOf(signatureParams.algorithm) === -1) { throw new UnsupportedAlgorithmError(...algorithms);