mirror of
https://github.com/caddyserver/caddy.git
synced 2024-12-23 22:27:38 -05:00
Merge pull request #859 from jupiter/fix/issue-643
Fix for cleaned URL.Path
This commit is contained in:
commit
2536ea74d9
2 changed files with 7 additions and 0 deletions
|
@ -165,6 +165,11 @@ func createUpstreamRequest(r *http.Request) *http.Request {
|
||||||
outreq := new(http.Request)
|
outreq := new(http.Request)
|
||||||
*outreq = *r // includes shallow copies of maps, but okay
|
*outreq = *r // includes shallow copies of maps, but okay
|
||||||
|
|
||||||
|
// Restore URL Path if it has been modified
|
||||||
|
if outreq.URL.RawPath != "" {
|
||||||
|
outreq.URL.Opaque = outreq.URL.RawPath
|
||||||
|
}
|
||||||
|
|
||||||
// Remove hop-by-hop headers to the backend. Especially
|
// Remove hop-by-hop headers to the backend. Especially
|
||||||
// important is "Connection" because we want a persistent
|
// important is "Connection" because we want a persistent
|
||||||
// connection, regardless of what the client sent to us. This
|
// connection, regardless of what the client sent to us. This
|
||||||
|
|
|
@ -309,6 +309,8 @@ func TestUnixSocketProxyPaths(t *testing.T) {
|
||||||
{"/proxy/hello", "/proxy", fmt.Sprintf(greeting, "/hello")},
|
{"/proxy/hello", "/proxy", fmt.Sprintf(greeting, "/hello")},
|
||||||
{"/proxy/foo/bar", "/proxy", fmt.Sprintf(greeting, "/foo/bar")},
|
{"/proxy/foo/bar", "/proxy", fmt.Sprintf(greeting, "/foo/bar")},
|
||||||
{"/proxy/?foo=bar", "/proxy", fmt.Sprintf(greeting, "/?foo=bar")},
|
{"/proxy/?foo=bar", "/proxy", fmt.Sprintf(greeting, "/?foo=bar")},
|
||||||
|
{"/queues/%2F/fetchtasks", "", fmt.Sprintf(greeting, "/queues/%2F/fetchtasks")},
|
||||||
|
{"/queues/%2F/fetchtasks?foo=bar", "", fmt.Sprintf(greeting, "/queues/%2F/fetchtasks?foo=bar")},
|
||||||
}
|
}
|
||||||
|
|
||||||
for _, test := range tests {
|
for _, test := range tests {
|
||||||
|
|
Loading…
Reference in a new issue