Thanks, that worked perfectly for now.
Jeff
On 3 November 2014 08:57, Stuart Douglas <sdouglas(a)redhat.com> wrote:
You just return the original conduit, but set the headers in the
wrapper
class itself.
Stuart
----- Original Message -----
> From: "Jeff Williams" <jeffw(a)wherethebitsroam.com>
> To: "Stuart Douglas" <sdouglas(a)redhat.com>
> Cc: undertow-dev(a)lists.jboss.org
> Sent: Monday, 3 November, 2014 6:34:28 PM
> Subject: Re: [undertow-dev] Changing headers on proxy response
>
> Stuart,
>
> Thanks for that. I'm guessing I can just extend
> org.xnio.conduits.AbstractStreamSinkConduit<StreamSinkConduit> and just
> pass everything through to next? Since there is not much information
around
> about the StreamSinkConduit, where would be the best place to add the
> headers? In the first call to one of the transferFrom methods?
>
> I've added a JIRA for this:
https://issues.jboss.org/browse/UNDERTOW-340
>
> Regards,
> Jeff
>
> On 2 November 2014 04:24, Stuart Douglas <sdouglas(a)redhat.com> wrote:
>
> > You can set them in a response wrapper
> > (io.undertow.server.HttpServerExchange#addResponseWrapper) and they
should
> > not be overriden, although this is not ideal.
> >
> > If you file a JIRA I will look at adding better support for this into
the
> > proxy.
> >
> > Stuart
> >
> > ----- Original Message -----
> > > From: "Jeff Williams" <jeffw(a)wherethebitsroam.com>
> > > To: undertow-dev(a)lists.jboss.org
> > > Sent: Saturday, 1 November, 2014 12:43:38 AM
> > > Subject: [undertow-dev] Changing headers on proxy response
> > >
> > > Hi,
> > >
> > > I am currently using a customer handler wrapping the proxy handler. I
> > want to
> > > set some response headers from my handler, but if they exist in the
> > response
> > > from the proxy's backend, they are overridden. Example code:
> > >
> > > Undertow.builder()
> > > .addHttpListener(8080, "localhost")
> > > .setHandler(new MyHandler(new ProxyHandler(proxy, 30000,
> > ResponseCodeHandler.
> > > HANDLE_404 ))).build();
> > >
> > > class MyHandler extends HttpHandler {
> > > private static final HttpString ACCESS_CONTROL_EXPOSE_HEADERS = new
> > > HttpString("Access-Control-Expose-Headers");
> > > private HTTPHandler next;
> > > public MyHandler(HttpHandler next) {
> > > this.next = next;
> > > }
> > > p ublic void handleRequest(HttpServerExchange exchange ) throws
> > Exception {
> > > exchange .getResponseHeaders().put( ACCESS_CONTROL_EXPOSE_HEADERS ,
" new
> > > ACEH" );
> > > }
> > > }
> > >
> > > The problem here is that the backend server responds with an
> > > Access-Control-Expose-Headers header and that replaces the one I set
in
> > > MyHandler.
> > >
> > > Is there any way I can change headers after proxy has received the
> > response
> > > from backend and before it starts sending the response to the client?
> > >
> > > Regards,
> > > Jeff
> > >
> > >
> > > _______________________________________________
> > > undertow-dev mailing list
> > > undertow-dev(a)lists.jboss.org
> > >
https://lists.jboss.org/mailman/listinfo/undertow-dev
> >
>