Skip to content

Commit

Permalink
Read identity type from service.api.signatureVersion (#4274)
Browse files Browse the repository at this point in the history
  • Loading branch information
trivikr committed Nov 23, 2022
1 parent f387f39 commit ce2286c
Show file tree
Hide file tree
Showing 2 changed files with 27 additions and 5 deletions.
5 changes: 5 additions & 0 deletions .changes/next-release/bugfix-Signer-57f3328c.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
{
"type": "bugfix",
"category": "Signer",
"description": "Read identity type from service.api.signatureVersion"
}
27 changes: 22 additions & 5 deletions lib/event_listeners.js
Original file line number Diff line number Diff line change
Expand Up @@ -73,6 +73,23 @@ function getOperationAuthtype(req) {
return operation ? operation.authtype : '';
}

/**
* @api private
*/
function getIdentityType(req) {
var service = req.service;

if (service.config.signatureVersion) {
return service.config.signatureVersion;
}

if (service.api.signatureVersion) {
return service.api.signatureVersion;
}

return getOperationAuthtype(req);
}

AWS.EventListeners = {
Core: new SequentialExecutor().addNamedListeners(function(add, addAsync) {
addAsync('VALIDATE_CREDENTIALS', 'validate',
Expand Down Expand Up @@ -250,12 +267,10 @@ AWS.EventListeners = {

addAsync('SIGN', 'sign', function SIGN(req, done) {
var service = req.service;
var operations = req.service.api.operations || {};
var operation = operations[req.operation];
var authtype = operation ? operation.authtype : '';
if (!service.api.signatureVersion && !authtype && !service.config.signatureVersion) return done(); // none
var identityType = getIdentityType(req);
if (!identityType || identityType.length === 0) return done(); // none

if (authtype === 'bearer' || service.config.signatureVersion === 'bearer') {
if (identityType === 'bearer') {
service.config.getToken(function (err, token) {
if (err) {
req.response.error = err;
Expand All @@ -281,6 +296,8 @@ AWS.EventListeners = {
try {
var date = service.getSkewCorrectedDate();
var SignerClass = service.getSignerClass(req);
var operations = req.service.api.operations || {};
var operation = operations[req.operation];
var signer = new SignerClass(req.httpRequest,
service.getSigningName(req),
{
Expand Down

0 comments on commit ce2286c

Please sign in to comment.