From b62f8e058270aff37621b69a9768235a01e8bd34 Mon Sep 17 00:00:00 2001 From: Matthew Holt Date: Mon, 16 Mar 2020 16:08:33 -0600 Subject: caddyhttp: Support path matcher of "*" without panic --- modules/caddyhttp/matchers.go | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) (limited to 'modules/caddyhttp/matchers.go') diff --git a/modules/caddyhttp/matchers.go b/modules/caddyhttp/matchers.go index 6b57ead..988c92d 100644 --- a/modules/caddyhttp/matchers.go +++ b/modules/caddyhttp/matchers.go @@ -211,9 +211,17 @@ func (m MatchPath) Match(r *http.Request) bool { for _, matchPath := range m { matchPath = repl.ReplaceAll(matchPath, "") + // special case: whole path is wildcard; this is unnecessary + // as it matches all requests, which is the same as no matcher + if matchPath == "*" { + return true + } + // special case: first and last characters are wildcard, // treat it as a fast substring match - if strings.HasPrefix(matchPath, "*") && strings.HasSuffix(matchPath, "*") { + if len(matchPath) > 1 && + strings.HasPrefix(matchPath, "*") && + strings.HasSuffix(matchPath, "*") { if strings.Contains(lowerPath, matchPath[1:len(matchPath)-1]) { return true } -- cgit v1.2.3