* headers: Check each ? default on its own and keep the response matcher
Several ? defaults in one header block shared one require, so a single
field already set on the response blocked all of them. A match in the
block was also dropped for the ? fields, so they were set on every
response.
* headers: Reject a response matcher on a field that also has a ? default
A ? default already requires its field to be absent, so a match on the
same field in that block could only be dropped or never be true. It is
now a Caddyfile error.
* headers: Test that the last ? default for a field wins
* headers: Allow an absence matcher on a field with a ? default
`match header !X-Test` asks for what `?X-Test` already requires, so it
loads again. Only a matcher that needs a value on that field is an error.
(cherry picked from commit
|
||
|---|---|---|
| .. | ||
| integration | ||
| a.caddy.localhost.crt | ||
| a.caddy.localhost.key | ||
| caddy.ca.cer | ||
| caddy.localhost.crt | ||
| caddy.localhost.key | ||
| caddytest.go | ||
| caddytest_test.go | ||
| leafcert.pem | ||