From b1f1e9a54fb1c3eab01c2c2d23ec24256dc0d154 Mon Sep 17 00:00:00 2001 From: WeebDataHoarder Date: Sun, 4 May 2025 04:03:07 +0200 Subject: [PATCH] challenge/http: fix setting request headers properly, add method header --- lib/challenge/http/http.go | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/lib/challenge/http/http.go b/lib/challenge/http/http.go index 802f8ea..e74535b 100644 --- a/lib/challenge/http/http.go +++ b/lib/challenge/http/http.go @@ -108,12 +108,14 @@ func FillRegistration(state challenge.StateInterface, reg *challenge.Registratio } } + data := challenge.RequestDataFromContext(r.Context()) + request, err := http.NewRequest(params.HttpMethod, params.Url, nil) if err != nil { return challenge.VerifyResultFail } - var excludeHeaders = []string{"Host", "Content-Length"} + var excludeHeaders = []string{"Host", "Content-Length", "Upgrade", "Accept-Encoding", "Range"} for k, v := range r.Header { if slices.Contains(excludeHeaders, k) { // skip these parameters @@ -121,10 +123,12 @@ func FillRegistration(state challenge.StateInterface, reg *challenge.Registratio } request.Header[k] = v } - // set id - request.Header.Set("X-Away-Id", challenge.RequestDataFromContext(r.Context()).Id.String()) + + // set id, ip, and other headers + data.RequestHeaders(request.Header) // set request info in X headers + request.Header.Set("X-Away-Method", r.Method) request.Header.Set("X-Away-Host", r.Host) request.Header.Set("X-Away-Path", r.URL.Path) request.Header.Set("X-Away-Query", r.URL.RawQuery) @@ -136,8 +140,6 @@ func FillRegistration(state challenge.StateInterface, reg *challenge.Registratio defer response.Body.Close() defer io.Copy(io.Discard, response.Body) - data := challenge.RequestDataFromContext(r.Context()) - if response.StatusCode != params.HttpCode { data.IssueChallengeToken(reg, key, sum, expiry, false) return challenge.VerifyResultNotOK