jetty/jetty.project

Question: AbstractProxyServlet onServerResponseHeaders addHeader rather than setHeader

Closed

#577 aberto em 18 de mai. de 2016

Ver no GitHub
 (9 comments) (0 reactions) (1 assignee)Java (1.913 forks)batch import
Help Wanted

Métricas do repositório

Stars
 (3.701 stars)
Métricas de merge de PR
 (Mesclagem média 6d 14h) (48 fundiu PRs em 30d)

Description

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

Guia do colaborador