diff --git a/.changes/next-release/bugfix-region-config-31f590e0.json b/.changes/next-release/bugfix-region-config-31f590e0.json new file mode 100644 index 0000000000..18374a4fc3 --- /dev/null +++ b/.changes/next-release/bugfix-region-config-31f590e0.json @@ -0,0 +1,5 @@ +{ + "type": "bugfix", + "category": "region_config", + "description": "Set signatureVersion to bearer explcitly when defined in service API" +} \ No newline at end of file diff --git a/lib/region_config.js b/lib/region_config.js index 2e8d0de628..b4c2401a28 100644 --- a/lib/region_config.js +++ b/lib/region_config.js @@ -64,11 +64,20 @@ function configureEndpoint(service) { // signature version if (!config.signatureVersion) { - config.signatureVersion = (service.api && service.api.signatureVersion) || 'v4'; + // Note: config is a global object and should not be mutated here. + // However, we are retaining this line for backwards compatibility. + // The non-v4 signatureVersion will be set in a copied object below. + config.signatureVersion = 'v4'; } + var useBearer = (service.api && service.api.signatureVersion) === 'bearer'; + // merge config - applyConfig(service, config); + applyConfig(service, Object.assign( + {}, + config, + { signatureVersion: useBearer ? 'bearer' : config.signatureVersion } + )); return; } }