fix(signature-v4): normalized the path before double encoding it #3408
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Issue
P59814336
If customer make make
MediaStoreData::PutObject
API call with SDK, but mistakenly use the absolute path forPath
parameter, they will get invalid signature error, for example:However the same call doesn't fail in AWS CLI. The route cause being the path in the request sent to the wire is
//some/path
, but the server side strips the redundant slashes. Since the signature is generated with double slashes, the invalid signature error raises.This change adopts the same behavior as Botocore to strip reduntant slashes.
This change also normalize the relative Unix path according to the RFC3986
Description
ref: https://github.com/boto/botocore/pull/827/files
Testing
Unit test
By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.