fix(middleware): skip CleanPath for HTTP CONNECT requests#1092
Open
lihan3238 wants to merge 1 commit into
Open
fix(middleware): skip CleanPath for HTTP CONNECT requests#1092lihan3238 wants to merge 1 commit into
lihan3238 wants to merge 1 commit into
Conversation
HTTP CONNECT requests use authority-form targets (host:port), not path-form. path.Clean() corrupts these targets, causing RoutePath mismatches and 404 responses. Skip the clean path logic for CONNECT method to preserve the authority-form target. Closes go-chi#807
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 #807
Summary
CleanPath middleware calls
path.Clean()on the request path, but HTTP CONNECT requests use authority-form targets (host:port), not path-form URIs.path.Clean()corrupts these targets (e.g.,example.com:8080→example.com:8080with altered RoutePath), causing route mismatches and 404 responses.Fix
Skip CleanPath logic entirely for CONNECT method, passing the request through unchanged. This preserves the authority-form target per RFC 9110 Section 9.3.4.
Test Plan
go test ./...)host:portthrough a router using CleanPath middleware