sig-auth.git

git clone https://git.crispbyte.dev/sig-auth.git

sig-auth.git / server
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}