From d06c15cae6a9d431b107435f9bee92088899b217 Mon Sep 17 00:00:00 2001 From: Carter Date: Wed, 10 Aug 2016 10:36:16 -0400 Subject: [PATCH] Set the request body to a new ReadCloser --- caddyhttp/httpserver/replacer.go | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/caddyhttp/httpserver/replacer.go b/caddyhttp/httpserver/replacer.go index ee4dc2022..cf7dfccc7 100644 --- a/caddyhttp/httpserver/replacer.go +++ b/caddyhttp/httpserver/replacer.go @@ -1,6 +1,7 @@ package httpserver import ( + "bytes" "io/ioutil" "log" "net" @@ -127,6 +128,9 @@ func NewReplacer(r *http.Request, rr *ResponseRecorder, emptyValue string) Repla } body, err := ioutil.ReadAll(r.Body) + // Create a new ReadCloser to keep the body from being drained. + r.Body = ioutil.NopCloser(bytes.NewBuffer(body)) + if err != nil { log.Printf("[WARNING] Cannot read request body %v", err) return ""