fix: restore original request path from X-Zoraxy-Uri header when proxying to backend
This commit is contained in:
parent
3b7af072a0
commit
d0b85fb635
2 changed files with 13 additions and 3 deletions
|
|
@ -92,7 +92,13 @@ func proxyToBackend(w http.ResponseWriter, r *http.Request) {
|
|||
return
|
||||
}
|
||||
|
||||
proxyReq, err := http.NewRequestWithContext(r.Context(), r.Method, target.String()+r.URL.Path, r.Body)
|
||||
// Restore the original URI that Zoraxy captured (stripped of /inspect prefix).
|
||||
originalPath := r.Header.Get("X-Zoraxy-Uri")
|
||||
if originalPath == "" {
|
||||
originalPath = r.URL.Path
|
||||
}
|
||||
|
||||
proxyReq, err := http.NewRequestWithContext(r.Context(), r.Method, target.String()+originalPath, r.Body)
|
||||
if err != nil {
|
||||
http.Error(w, "proxy error", http.StatusInternalServerError)
|
||||
return
|
||||
|
|
|
|||
8
proxy.go
8
proxy.go
|
|
@ -27,10 +27,14 @@ func inspect(r *http.Request) (int, error) {
|
|||
r.Body = io.NopCloser(io.MultiReader(bytes.NewReader(bodySample), r.Body))
|
||||
}
|
||||
|
||||
// Build inspection payload.
|
||||
// Build inspection payload with the original URI.
|
||||
originalPath := r.Header.Get("X-Zoraxy-Uri")
|
||||
if originalPath == "" {
|
||||
originalPath = r.URL.String()
|
||||
}
|
||||
payload, err := json.Marshal(map[string]interface{}{
|
||||
"method": r.Method,
|
||||
"url": r.URL.String(),
|
||||
"url": originalPath,
|
||||
"host": r.Host,
|
||||
"remote_addr": r.RemoteAddr,
|
||||
"content_type": r.Header.Get("Content-Type"),
|
||||
|
|
|
|||
Loading…
Reference in a new issue