@@ -73,6 +73,23 @@ function getOperationAuthtype(req) {
73
73
return operation ? operation . authtype : '' ;
74
74
}
75
75
76
+ /**
77
+ * @api private
78
+ */
79
+ function getIdentityType ( req ) {
80
+ var service = req . service ;
81
+
82
+ if ( service . config . signatureVersion ) {
83
+ return service . config . signatureVersion ;
84
+ }
85
+
86
+ if ( service . api . signatureVersion ) {
87
+ return service . api . signatureVersion ;
88
+ }
89
+
90
+ return getOperationAuthtype ( req ) ;
91
+ }
92
+
76
93
AWS . EventListeners = {
77
94
Core : new SequentialExecutor ( ) . addNamedListeners ( function ( add , addAsync ) {
78
95
addAsync ( 'VALIDATE_CREDENTIALS' , 'validate' ,
@@ -250,12 +267,10 @@ AWS.EventListeners = {
250
267
251
268
addAsync ( 'SIGN' , 'sign' , function SIGN ( req , done ) {
252
269
var service = req . service ;
253
- var operations = req . service . api . operations || { } ;
254
- var operation = operations [ req . operation ] ;
255
- var authtype = operation ? operation . authtype : '' ;
256
- if ( ! service . api . signatureVersion && ! authtype && ! service . config . signatureVersion ) return done ( ) ; // none
270
+ var identityType = getIdentityType ( req ) ;
271
+ if ( ! identityType || identityType . length === 0 ) return done ( ) ; // none
257
272
258
- if ( authtype === 'bearer' || service . config . signatureVersion === 'bearer' ) {
273
+ if ( identityType === 'bearer' ) {
259
274
service . config . getToken ( function ( err , token ) {
260
275
if ( err ) {
261
276
req . response . error = err ;
@@ -281,6 +296,8 @@ AWS.EventListeners = {
281
296
try {
282
297
var date = service . getSkewCorrectedDate ( ) ;
283
298
var SignerClass = service . getSignerClass ( req ) ;
299
+ var operations = req . service . api . operations || { } ;
300
+ var operation = operations [ req . operation ] ;
284
301
var signer = new SignerClass ( req . httpRequest ,
285
302
service . getSigningName ( req ) ,
286
303
{
0 commit comments