feature request: header-matcher allow ignore case
- Dominant language
- C++
- Stars
- 28.9k
- Forks
- 5.6k
- Avg merge
- 1d 20h
- Merged PRs (30d)
- 437
Description
Envoy normalizes header keys, but not their values for good reason. We use a combination of the `:authority` header as well as the request path for H1/2 service routing. We have multiple services tied to a single filter chain and virtual host.
excerpt...
```
"routes": [{
"match": {
"headers": [{
"exactMatch": "myservice.mydomain.com",
"name": ":authority"
}],
"prefix": "/servce/path"
},
"route": {
"cluster": "mycluster",
}
}]
}
```
However, if there's a discrepancy in the header sent by the client, where for example they use an uppercase letter, then our route matching will not work; `:authority` = `MYservice.MYdomain.com`
As I see it, there are at least two options:
1. add a flag to ignore the case for the header matchers; note that we already have the [ignore case](https://www.envoyproxy.io/docs/envoy/latest/api-v2/type/matcher/string.proto) flag for the string matchers.
2. ability to normalize some headers values
We could of course have a workaround using a regex, but the performance implications don't make it a viable option.
similar issues
- https://github.com/envoyproxy/envoy/pull/2439
Contributor guide
Assessment
This issue has not been assessed yet.