-
Notifications
You must be signed in to change notification settings - Fork 940
Merge feature/master/checksum-reuse #6452
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
* Reuse computed checksums across retries This commit adds the ability to reuse previously computed checksums for a request across retries. This ensures that if a request data stream is modified between attempts that the server will reject the request. As part of this change, the `http-auth-spi` package has been updated to expose a new interface: `PayloadChecksumStore`. This is a simple storage interface that allows signers to store and retrieve computed checksums. Additionally, a new `SignerProperty` is introduced, `SdkInternalHttpSignerProperty.CHECKSUM_CACHE` so that signers and their callers can access this cache. Note that both the interface and associated signer property are `@SdkProtectedApi` and not intended to be used by non-SDK consumers of `http-auth-spi`. Finally, this adds a dependency on `checksums-spi` for `http-auth-spi`. * Update core/sdk-core/src/main/java/software/amazon/awssdk/core/internal/http/pipeline/stages/SigningStage.java Co-authored-by: David Ho <[email protected]> * Review comments --------- Co-authored-by: David Ho <[email protected]>
* Reuse computed checkums for async payloads This is a continuation of #6413 that adds support for checksum reuse on async payloads. Additionally, this commit renames references to "ChecksumCache" to "ChecksumStore". * Fix cross module issue
* Reuse checksums in legacy signing codepath This commit adds support for reusing calculated payload checksums over retries in the legacy (i.e. non-SRA) signing codepaths. * S3 testing with non-SRA
a152fbb
to
4cb9210
Compare
…ge-2' into feature/master/checksum-reuse
This doesn't correspond to a flexible checksum value, so this is not required.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Commits already reviewed individually by others.
|
This pull request has been closed and the conversation has been locked. Comments on closed PRs are hard for our team to see. If you need more assistance, please open a new issue that references this one. |
Motivation and Context
This update enables reusing the initially computed payload checksum of a request across all request attempts. This ensures that even if the content is changed from one attempt to the next, the checksum included in the request will remain the same and the request will be rejected by the service.
This PR merges the feature branch which contains previously reviewed commits:
Modifications
Testing
Screenshots (if appropriate)
Types of changes
Checklist
mvn install
succeedsscripts/new-change
script and following the instructions. Commit the new file created by the script in.changes/next-release
with your changes.License