mux: dedupe the Allow header on 405 responses#1096
Open
c-tonneslan wants to merge 1 commit into
Open
Conversation
methodsAllowed gets appended to once per matching tree branch, so
when multiple overlapping wildcard routes (or a literal and a
wildcard that match the same path) only differ by their pattern but
share the same method, the resulting Allow header repeated that
method per branch ("Allow: POST, POST, POST" for the reporter's
three-route setup).
Dedupe in methodNotAllowedHandler so each method shows up at most
once in the response. No change to the routing logic itself.
Closes go-chi#996.
Signed-off-by: Charlie Tonneslan <cst0520@gmail.com>
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 join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Closes #996.
`methodsAllowed` gets appended to once per matching tree branch, so when multiple overlapping wildcard routes (or a literal and a wildcard that match the same path) only differ by their pattern but share the same method, the resulting Allow header repeated that method per branch. The reporter's three-route setup produced `Allow: POST, POST, POST`.
Dedupe in `methodNotAllowedHandler` so each method shows up at most once. No change to the routing logic itself.
Added `TestMethodNotAllowed_DedupesAllowHeader` covering the regression.