Open wbpcode opened 2 months ago
yea, it's the same issue. This is a very important feature for a bunch of filters.
Without it, we even cannot set the content length correctly after mutate the body. It's weird.
Without it, we even cannot set the content length correctly after mutate the body. It's weird.
You don't need to set Content-Length
header. If you plan to mutate body, then you should remove Content-Length
header and either set Content-Encoding: chunked
yourself or it will be automatically applied by Envoy.
Without it, we even cannot set the content length correctly after mutate the body. It's weird.
You don't need to set
Content-Length
header. If you plan to mutate body, then you should removeContent-Length
header and either setContent-Encoding: chunked
yourself or it will be automatically applied by Envoy.
It just an example, more usual cases are do something based on the body and change the request headers. Or just need to do some verification based on body and need to stop iteration of header filter chain.
It just an example, more usual cases are do something based on the body and change the request headers. Or just need to do some verification based on body and need to stop iteration of header filter chain.
Agreed. And as you know we're adding support for better control over that in ABI v0.3 (https://github.com/proxy-wasm/spec/issues/63) to address other use cases.
However, I wanted to point out that your example is an anti-pattern and you should never buffer the request/response body in order to set Content-Length
header, even when you have StopIternation
or similar mechanism.
It just an example, more usual cases are do something based on the body and change the request headers. Or just need to do some verification based on body and need to stop iteration of header filter chain.
Agreed. And as you know we're adding support for better control over that in ABI v0.3 (https://github.com/proxy-wasm/spec/issues/63) to address other use cases.
However, I wanted to point out that your example is an anti-pattern and you should never buffer the request/response body in order to set
Content-Length
header, even when you haveStopIternation
or similar mechanism.
Yeah, basically we will remove the content length directly to force Envoy to used the chunked way in practices. I will update the description to avoid misdirecting others.
We converted all StopIteration to StopAll at #95.
It make the wasm filter couldn't work in some typically scenarios, for example, custom auth may require to parse body to complete the authentication, but return
Continue
when calling onRequestHeaders will proxy headers to uptream before we complete the authentication, returnStopAll
will prohibit the wasm to access body.