jetty/jetty.project

Question: AbstractProxyServlet onServerResponseHeaders addHeader rather than setHeader

Closed

#577 ouverte le 18 mai 2016

Voir sur GitHub
 (9 commentaires) (0 réactions) (1 assigné)Java (1 913 forks)batch import
Help Wanted

Métriques du dépôt

Stars
 (3 701 stars)
Métriques de merge PR
 (Merge moyen 6j 14h) (48 PRs mergées en 30 j)

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

Guide contributeur