diff options
author | Rajat Jain <rajatjain.ix@gmail.com> | 2021-03-11 02:52:33 +0530 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-03-10 14:22:33 -0700 |
commit | 802f80c3821940825ec278e1d9c153a321e956a9 (patch) | |
tree | 2542c3f371623f0be26caf899de61814e36471a8 | |
parent | 51f35ba03f78e691d0e141b24ff19f82bfb34b67 (diff) |
map: Accept regex substitution in outputs (#3991)
* Replace placeholders with regex groups
* using Matcher methods
* test added
* linting fix
* Revert "linting fix"
This reverts commit cafd7296f43639bbcd2601bea79a47f60763a200.
* Revert "test added"
This reverts commit 3a76cc7b0bc5dcef15ca5c8ec22efcd4067d484c.
* Revert "using Matcher methods"
This reverts commit cc34337b8ebb61d40ec343cee0fc225a694d3db6.
* tests added
-rw-r--r-- | caddytest/integration/map_test.go | 4 | ||||
-rw-r--r-- | modules/caddyhttp/map/map.go | 1 |
2 files changed, 3 insertions, 2 deletions
diff --git a/caddytest/integration/map_test.go b/caddytest/integration/map_test.go index aa535ec..7cd769e 100644 --- a/caddytest/integration/map_test.go +++ b/caddytest/integration/map_test.go @@ -19,7 +19,7 @@ func TestMap(t *testing.T) { map {http.request.method} {dest-1} {dest-2} { default unknown1 unknown2 - ~G.T get-called + ~G(.)(.) G${1}${2}-called POST post-called foobar } @@ -30,7 +30,7 @@ func TestMap(t *testing.T) { `, "caddyfile") // act and assert - tester.AssertGetResponse("http://localhost:9080/version", 200, "hello from localhost get-called unknown2") + tester.AssertGetResponse("http://localhost:9080/version", 200, "hello from localhost GET-called unknown2") tester.AssertPostResponseBody("http://localhost:9080/version", []string{}, bytes.NewBuffer([]byte{}), 200, "hello from localhost post-called foobar") } diff --git a/modules/caddyhttp/map/map.go b/modules/caddyhttp/map/map.go index e193f20..a0e0768 100644 --- a/modules/caddyhttp/map/map.go +++ b/modules/caddyhttp/map/map.go @@ -136,6 +136,7 @@ func (h Handler) ServeHTTP(w http.ResponseWriter, r *http.Request, next caddyhtt if output := m.Outputs[destIdx]; output == nil { continue } else { + output = m.re.ReplaceAllString(input, m.Outputs[destIdx].(string)) return output, true } } |