@@ -529,18 +529,25 @@ private String buildAndExtractAuthorizationHeader(final Map<String, String> para
529529 final ActivityKind activityKind ) {
530530 String activityKindString = activityKind .toString ();
531531
532+ String adjSigningId = extractAdjSigningId (parameters );
532533 String secretId = extractSecretId (parameters );
533534 String headersId = extractHeadersId (parameters );
534535 String signature = extractSignature (parameters );
535536 String algorithm = extractAlgorithm (parameters );
536537 String nativeVersion = extractNativeVersion (parameters );
537538
538- String authorizationHeader = buildAuthorizationHeaderV2 (signature , secretId ,
539+ String authorizationHeader = buildAuthorizationHeaderV2WithAdjSigningId (signature , adjSigningId ,
539540 headersId , algorithm , nativeVersion );
540541 if (authorizationHeader != null ) {
541542 return authorizationHeader ;
542543 }
543544
545+ authorizationHeader = buildAuthorizationHeaderV2WithSecretId (signature , secretId , headersId ,
546+ algorithm , nativeVersion );
547+ if (authorizationHeader != null ) {
548+ return authorizationHeader ;
549+ }
550+
544551 String appSecret = extractAppSecret (parameters );
545552 return buildAuthorizationHeaderV1 (parameters , appSecret , secretId , activityKindString );
546553 }
@@ -574,11 +581,35 @@ private String buildAuthorizationHeaderV1(final Map<String, String> parameters,
574581 return authorizationHeader ;
575582 }
576583
577- private String buildAuthorizationHeaderV2 (final String signature ,
578- final String secretId ,
579- final String headersId ,
580- final String algorithm ,
581- final String nativeVersion )
584+ private String buildAuthorizationHeaderV2WithAdjSigningId (final String signature ,
585+ final String adjSigningId ,
586+ final String headersId ,
587+ final String algorithm ,
588+ final String nativeVersion )
589+ {
590+ if (adjSigningId == null || signature == null || headersId == null ) {
591+ return null ;
592+ }
593+
594+ String signatureHeader = Util .formatString ("signature=\" %s\" " , signature );
595+ String adjSigningIdHeader = Util .formatString ("adj_signing_id=\" %s\" " , adjSigningId );
596+ String idHeader = Util .formatString ("headers_id=\" %s\" " , headersId );
597+ String algorithmHeader = Util .formatString ("algorithm=\" %s\" " , algorithm != null ? algorithm : "adj1" );
598+ String nativeVersionHeader = Util .formatString ("native_version=\" %s\" " , nativeVersion != null ? nativeVersion : "" );
599+
600+ String authorizationHeader = Util .formatString ("Signature %s,%s,%s,%s,%s" ,
601+ signatureHeader , adjSigningIdHeader , algorithmHeader , idHeader , nativeVersionHeader );
602+
603+ logger .verbose ("authorizationHeader: %s" , authorizationHeader );
604+
605+ return authorizationHeader ;
606+ }
607+
608+ private String buildAuthorizationHeaderV2WithSecretId (final String signature ,
609+ final String secretId ,
610+ final String headersId ,
611+ final String algorithm ,
612+ final String nativeVersion )
582613 {
583614 if (secretId == null || signature == null || headersId == null ) {
584615 return null ;
@@ -702,4 +733,10 @@ private static String extractHeadersId(final Map<String, String> parameters) {
702733 private static void extractEventCallbackId (final Map <String , String > parameters ) {
703734 parameters .remove ("event_callback_id" );
704735 }
736+
737+ private static String extractAdjSigningId (final Map <String , String > parameters ) {
738+ return parameters .remove ("adj_signing_id" );
739+ }
740+
741+
705742}
0 commit comments