[pull] main from tower-rs:main#20
Merged
Merged
Conversation
* fix!: handle wildcard * in Accept-Encoding per RFC 9110 §12.5.3 * fix: replace let...else with match for MSRV compatibility
* feat(csrf): add cross-origin protection middleware Ports the CSRF protection scheme introduced in Go 1.25 (described in Filippo Valsorda's blog post) as a new optional `csrf` feature. The middleware combines `Sec-Fetch-Site`, an `Origin` allow-list, and an `Origin`/`Host` fallback to reject cross-origin state-changing requests without per-request token state. * fix(csrf): strip query string from trace log URIs * feat(csrf): add #[must_use] to Csrf service * chore(csrf): made example slightly better formatted * test(csrf): exercise Service::call() flow via oneshot * chore(csrf): fix style * refactor(csrf): inline is_exempt as a closure inside verify * feat(csrf): allow customizing the rejection response * docs(csrf): document UriExt and TrustedOrigin * test(csrf): cover custom rejection response on allowed request * test(csrf): explain why the safe-method check avoids Method::is_safe * refactor(csrf): match Go with strict byte-level origin comparison * refactor(csrf): bound with_rejection_response on Clone for clearer errors * refactor(csrf): make ProtectionError an opaque struct over a kind enum * refactor(csrf): attach ProtectionError in the service so custom rejections keep it * fix(csrf): prefer request-target authority over Host header in same-origin check * style(csrf): rustfmt service.rs
barjin
approved these changes
Jun 1, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to subscribe to this conversation on GitHub.
Already have an account?
Sign in.
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.
See Commits and Changes for more details.
Created by
pull[bot] (v2.0.0-alpha.4)
Can you help keep this open source service alive? 💖 Please sponsor : )