summaryrefslogtreecommitdiff
path: root/modules/caddyhttp
diff options
context:
space:
mode:
authorMatthew Holt <mholt@users.noreply.github.com>2019-05-21 13:10:14 -0600
committerMatthew Holt <mholt@users.noreply.github.com>2019-05-21 13:10:14 -0600
commit67d32e6779b8e4f67fb0902b06210596371ead7f (patch)
treeb5cf0490ba4d685d1af7c21e154c500a3426db45 /modules/caddyhttp
parent9d54f655aa7698ce683786dfc31b6f11df3c89d2 (diff)
Fix up matchers tests and take care of TODO in rewrite
Diffstat (limited to 'modules/caddyhttp')
-rw-r--r--modules/caddyhttp/matchers_test.go8
-rw-r--r--modules/caddyhttp/replacer.go7
-rw-r--r--modules/caddyhttp/rewrite/rewrite.go4
3 files changed, 9 insertions, 10 deletions
diff --git a/modules/caddyhttp/matchers_test.go b/modules/caddyhttp/matchers_test.go
index c4c7845..59b8c76 100644
--- a/modules/caddyhttp/matchers_test.go
+++ b/modules/caddyhttp/matchers_test.go
@@ -240,10 +240,10 @@ func TestPathREMatcher(t *testing.T) {
}
for key, expectVal := range tc.expectRepl {
- placeholder := fmt.Sprintf("{matchers.path_regexp.%s}", key)
+ placeholder := fmt.Sprintf("{http.matchers.path_regexp.%s}", key)
actualVal := repl.ReplaceAll(placeholder, "<empty>")
if actualVal != expectVal {
- t.Errorf("Test %d [%v]: Expected placeholder {matchers.path_regexp.%s} to be '%s' but got '%s'",
+ t.Errorf("Test %d [%v]: Expected placeholder {http.matchers.path_regexp.%s} to be '%s' but got '%s'",
i, tc.match.Pattern, key, expectVal, actualVal)
continue
}
@@ -358,10 +358,10 @@ func TestHeaderREMatcher(t *testing.T) {
}
for key, expectVal := range tc.expectRepl {
- placeholder := fmt.Sprintf("{matchers.header_regexp.%s}", key)
+ placeholder := fmt.Sprintf("{http.matchers.header_regexp.%s}", key)
actualVal := repl.ReplaceAll(placeholder, "<empty>")
if actualVal != expectVal {
- t.Errorf("Test %d [%v]: Expected placeholder {matchers.header_regexp.%s} to be '%s' but got '%s'",
+ t.Errorf("Test %d [%v]: Expected placeholder {http.matchers.header_regexp.%s} to be '%s' but got '%s'",
i, tc.match, key, expectVal, actualVal)
continue
}
diff --git a/modules/caddyhttp/replacer.go b/modules/caddyhttp/replacer.go
index 16cc1fe..0b0547d 100644
--- a/modules/caddyhttp/replacer.go
+++ b/modules/caddyhttp/replacer.go
@@ -48,16 +48,17 @@ func addHTTPVarsToReplacer(repl caddy2.Replacer, req *http.Request, w http.Respo
dir, _ := path.Split(req.URL.Path)
return dir
}()
+ m["http.request.uri.query"] = req.URL.RawQuery
+ for param, vals := range req.URL.Query() {
+ m["http.request.uri.query."+param] = strings.Join(vals, ",")
+ }
for field, vals := range req.Header {
m["http.request.header."+strings.ToLower(field)] = strings.Join(vals, ",")
}
for _, cookie := range req.Cookies() {
m["http.request.cookie."+cookie.Name] = cookie.Value
}
- for param, vals := range req.URL.Query() {
- m["http.request.uri.query."+param] = strings.Join(vals, ",")
- }
hostLabels := strings.Split(req.Host, ".")
for i, label := range hostLabels {
diff --git a/modules/caddyhttp/rewrite/rewrite.go b/modules/caddyhttp/rewrite/rewrite.go
index 1afb8a4..9bd01c0 100644
--- a/modules/caddyhttp/rewrite/rewrite.go
+++ b/modules/caddyhttp/rewrite/rewrite.go
@@ -36,17 +36,15 @@ func (rewr Rewrite) ServeHTTP(w http.ResponseWriter, r *http.Request, next caddy
}
if rewr.URI != "" {
- // TODO: clean this all up, I don't think it's right
-
oldURI := r.RequestURI
newURI := repl.ReplaceAll(rewr.URI, "")
+
u, err := url.Parse(newURI)
if err != nil {
return caddyhttp.Error(http.StatusInternalServerError, err)
}
r.RequestURI = newURI
-
r.URL.Path = u.Path
if u.RawQuery != "" {
r.URL.RawQuery = u.RawQuery