cheddar
·
2025-02-22
caddy_rewrite.go
1package server
2
3import (
4 "net/http"
5 "strconv"
6)
7
8func rewriteHeaders(next http.Handler) http.Handler {
9 return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
10 forwardedMethod := r.Header.Get("X-Forwarded-Method")
11 forwardedUri := r.Header.Get("X-Forwarded-Uri")
12 forwardedContentLength := r.Header.Get("X-Forwarded-Content-Length")
13
14 r.Method = forwardedMethod
15 r.URL.Path = forwardedUri
16 contentLength, err := strconv.Atoi(forwardedContentLength)
17
18 if err != nil {
19 http.Error(w, "Bad forwarded content length", 400)
20 }
21
22 r.ContentLength = int64(contentLength)
23
24 next.ServeHTTP(w, r)
25 })
26}