area/configurationarea/httpenhancementhelp wanted
Repository metrics
- Stars
- (27,997 stars)
- PR merge metrics
- (Avg merge 8d) (378 merged PRs in 30d)
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:
- add a flag to ignore the case for the header matchers; note that we already have the ignore case flag for the string matchers.
- 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