0
Fork 0
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:
Matt Holt 2016-06-02 16:43:34 -06:00
commit 2536ea74d9
2 changed files with 7 additions and 0 deletions

View file

@ -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

View file

@ -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 {