@@ -221,8 +221,6 @@ pub async fn compute_aws_sigv4_payload(
221
221
host : & str ,
222
222
server_nonce : & [ u8 ] ,
223
223
) -> Result < Document > {
224
- let date_str = date. format ( "%Y%m%dT%H%M%SZ" ) . to_string ( ) ;
225
-
226
224
let region = if host == "sts.amazonaws.com" {
227
225
"us-east-1"
228
226
} else {
@@ -231,7 +229,7 @@ pub async fn compute_aws_sigv4_payload(
231
229
} ;
232
230
233
231
let url = format ! ( "https://{}" , host) ;
234
- let service = "sts" ;
232
+ let date_str = date . format ( "%Y%m%dT%H%M%SZ" ) . to_string ( ) ;
235
233
let body_str = "Action=GetCallerIdentity&Version=2011-06-15" ;
236
234
let body_bytes = body_str. as_bytes ( ) ;
237
235
let nonce_b64 = base64:: encode ( server_nonce) ;
@@ -255,6 +253,7 @@ pub async fn compute_aws_sigv4_payload(
255
253
Error :: authentication_error ( MECH_NAME , & format ! ( "Failed to build request: {e}" ) )
256
254
} ) ?;
257
255
256
+ let service = "sts" ;
258
257
let identity = creds. into ( ) ;
259
258
260
259
// Set up signing parameters
@@ -274,24 +273,24 @@ pub async fn compute_aws_sigv4_payload(
274
273
let signable_request = SignableRequest :: new (
275
274
request. method ( ) . as_str ( ) ,
276
275
request. uri ( ) . to_string ( ) ,
277
- request
278
- . headers ( )
279
- . iter ( )
280
- . map ( |( k, v) | ( k. as_str ( ) , std:: str:: from_utf8 ( v. as_bytes ( ) ) . unwrap ( ) ) ) ,
276
+ request. headers ( ) . iter ( ) . map ( |( k, v) | {
277
+ (
278
+ k. as_str ( ) ,
279
+ std:: str:: from_utf8 ( v. as_bytes ( ) ) . expect ( "Header value should be valid UTF-8" ) ,
280
+ )
281
+ } ) ,
281
282
SignableBody :: Bytes ( request. body ( ) . as_bytes ( ) ) ,
282
283
)
283
284
. map_err ( |e| {
284
285
Error :: authentication_error ( MECH_NAME , & format ! ( "Failed to create SignableRequest: {e}" ) )
285
286
} ) ?;
286
287
287
- // Sign the request
288
288
let ( signing_instructions, _signature) = sign ( signable_request, & signing_params)
289
289
. map_err ( |e| Error :: authentication_error ( MECH_NAME , & format ! ( "Signing failed: {e}" ) ) ) ?
290
290
. into_parts ( ) ;
291
291
292
292
signing_instructions. apply_to_request_http1x ( & mut request) ;
293
293
294
- // Extract the Authorization header
295
294
let headers = request. headers ( ) ;
296
295
let authorization_header = headers
297
296
. get ( "authorization" )
0 commit comments