Question: AbstractProxyServlet onServerResponseHeaders addHeader rather than setHeader
#577 创建于 2016年5月18日
仓库指标
- Star
- (3,701 star)
- PR 合并指标
- (平均合并 6天 14小时) (30 天内合并 48 个 PR)
描述
We have a listener implmenets org.eclipse.jetty.client.api.Response.Listener class
and for onHeaders method we have the following implementation
@Override
public void onHeaders(Response response) {
wrappedVersion.onHeaders(response);
}
this wrappedVersion.onHeaders calls ProxyResponseListener then calls AbstractProxyServlet's onServerResponseHeaders method which calls addHeader.
This is a problem for us because we have configured org.eclipse.jetty.servlets.CrossOriginFilter which has handleSimpleResponse which calls response.setHeader(ACCESS_CONTROL_ALLOW_ORIGIN_HEADER, origin);
And this CORS filter is called before our filter. Which means for our filter onHeaders, rather than replacing the headers, it actually added more headers.
I wonder why Jetty doesn't do setHeader in onServerResponseHeaders? I am guessing this is because we do not want to lose any set cookie headers?
And what would be a better design if its something we can improve on our side?
thanks