Ensure S3 presigned default expires time is not changing #861
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.
It occurred to us that signatures end up invalid randomly because the default signature time is computed twice and we can end up with a policy that was signed for a policy with an expiration time 1 second earlier.
To be specific, the policy is computed twice inside the
fields
method which uses theformation_expiration
twice too, which in turn computesTime.now
at two different times.https://github.com/didacte/aws-sdk-ruby/blob/bugfix/s3-presigned-default-expires/lib/aws/s3/presigned_post.rb#L345-L351
@see marcel/aws-s3#54 (similar issue)