jetty/jetty.project

Question: AbstractProxyServlet onServerResponseHeaders addHeader rather than setHeader

Closed

#577 geöffnet am 18. Mai 2016

Auf GitHub ansehen
 (9 Kommentare) (0 Reaktionen) (1 zugewiesene Person)Java (1.913 Forks)batch import
Help Wanted

Repository-Metriken

Stars
 (3.701 Stars)
PR-Merge-Metriken
 (Durchschn. Merge 6T 14h) (48 gemergte PRs in 30 T)

Beschreibung

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

Contributor Guide