mirror of
https://github.com/caddyserver/caddy.git
synced 2026-05-30 10:35:18 -04:00
Filter empty headers (#1239)
* Filter empty headers Some web servers (e.g. Jetty 9.3) don’t like HTTP headers with empty values. This commit filters header replacements with zero length. * Extend tests to verify removal of empty headers * Handle add-header case * Change - Use short variable assignment
This commit is contained in:
@@ -287,12 +287,18 @@ func mutateHeadersByRules(headers, rules http.Header, repl httpserver.Replacer)
|
||||
for ruleField, ruleValues := range rules {
|
||||
if strings.HasPrefix(ruleField, "+") {
|
||||
for _, ruleValue := range ruleValues {
|
||||
headers.Add(strings.TrimPrefix(ruleField, "+"), repl.Replace(ruleValue))
|
||||
replacement := repl.Replace(ruleValue)
|
||||
if len(replacement) > 0 {
|
||||
headers.Add(strings.TrimPrefix(ruleField, "+"), replacement)
|
||||
}
|
||||
}
|
||||
} else if strings.HasPrefix(ruleField, "-") {
|
||||
headers.Del(strings.TrimPrefix(ruleField, "-"))
|
||||
} else if len(ruleValues) > 0 {
|
||||
headers.Set(ruleField, repl.Replace(ruleValues[len(ruleValues)-1]))
|
||||
replacement := repl.Replace(ruleValues[len(ruleValues)-1])
|
||||
if len(replacement) > 0 {
|
||||
headers.Set(ruleField, replacement)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user