I have an external service that only accept header key “Authorization”. But envoy sidecar lower all of request headers key name. https://www.envoyproxy.io/docs/envoy/latest/configuration/http/http_conn_man/header_casing
I created an EnvoyFilters config, but when i debug on the external service. All header case is still lowercase. Changing external service is impossible. So, how can i bypass header keys normalizing of envoy ? like this https://github.com/istio/istio/issues/18672 ?
I’m using istio 1.6.4 on EKS 1.4.9
This is my EnvoyFilters config
apiVersion: networking.istio.io/v1alpha3
kind: EnvoyFilter
metadata:
name: normalize-headers
namespace: istio-system
spec:
workloadSelector:
labels:
istio: ingressgateway
configPatches:
- applyTo: NETWORK_FILTER
match:
context: ANY
listener:
filterChain:
filter:
name: "envoy.http_connection_manager"
patch:
operation: MERGE
value:
typed_config:
"@type": "type.googleapis.com/envoy.config.filter.network.http_connection_manager.v2.HttpConnectionManager"
http_protocol_options:
header_key_format:
proper_case_words: {}
Updated:
Using this and problem solved
apiVersion: networking.istio.io/v1alpha3
kind: EnvoyFilter
metadata:
name: normalize-headers
namespace: dev
spec:
configPatches:
- applyTo: CLUSTER
match:
context: SIDECAR_OUTBOUND # SIDECAR_INBOUND
patch:
operation: MERGE
value:
http_protocol_options:
header_key_format:
proper_case_words: {}