Description
Describe the bug
We had been using AWSAuthV4Signer
to sign out S3 requests. Note that we are only using it to sign the headers, and the request (alongside the body) is sent using libcurl's asynchronous mechanism.
Now, to achieve this, we utilise AWSAuthV4Signer
's SignRequest
method with signBody set to true. Earlier, it used to stamp such requests with the header x-amz-content-sha256: UNSIGNED-PAYLOAD
, which was working fine. But now, as we upgraded to the latest SDK, I observed that the signer is stamping empty string's sha256 x-amz-content-sha256: e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855
with the request since it assumes there is no body. Essentially, the code is not respecting the signBody parameter at all.
Can we fall back on older behaviour where the SDK used to respect the signBody parameter, and hence, this sort of use case can be handled. It actually seems like a regression to me since. Thoughts?
Regression Issue
- Select this option if this issue appears to be a regression.
Expected Behavior
The AWSAuthV4Signer
's SignRequest
method should respect the signBody
parameter
Current Behavior
The AWSAuthV4Signer
's SignRequest
method is not respecting the signBody
parameter
Reproduction Steps
Use AWSAuthV4Signer
to sign the request headers (not the body) and later use libcurl to send the request
Possible Solution
No response
Additional Information/Context
No response
AWS CPP SDK version used
1.11.588
Compiler and Version used
gcc (GCC) 8.5.0 20210514
Operating System and version
Rocky Linux v8.10