[undertow-dev] Reverse-Proxy: Consuming InputStream before delegating to proxy target
Stuart Douglas
sdouglas at redhat.com
Thu Jan 21 22:33:03 EST 2016
Have a look at the code in io.undertow.server.handlers.RequestBufferingHandler
This basically fully reads the request (assuming it fits in the buffers), then uses Connectors.ungetRequestBytes(exchange, bufferedData); to restore the data. You could do something similar.
Stuart
----- Original Message -----
> From: "Jaeckle Thomas (INST/ECS1)" <Thomas.Jaeckle at bosch-si.com>
> To: undertow-dev at lists.jboss.org
> Sent: Wednesday, 20 January, 2016 8:48:49 PM
> Subject: [undertow-dev] Reverse-Proxy: Consuming InputStream before delegating to proxy target
>
>
>
> Hi.
>
>
>
> I have following scenario in which I currently face a problem with Undertow:
>
>
>
> I use Undertow as a Reverse-Proxy (via SimpleProxyClientProvider).
>
> I want to enable a Signature-based authentication where the client can sign
> the HTTP request with its private key and the Reverse-Proxy (implemented
> with Undertow) can check with the client’s public key if it was signed
> correctly.
>
>
>
> I do not only want to include HTTP headers (Host, Date, ..) and Method/Path,
> but also the request body.
>
> For that I need to consume the HttpServerExchange’s InputStream:
>
>
>
> if ( isHttpMethodWithBody (method))
> {
> exchange.startBlocking();
> final String body = new Scanner(exchange.getInputStream(), "UTF-8"
> ).useDelimiter( " \\A " ).next();
> ..
>
>
> Unfortunately in this scenario, the Exchange’s “getRequestChannel()” returns
> null as “another party already acquired the channel”.
>
>
>
> I found “ Connectors. resetRequestChannel (exchange)”;
>
>
>
> But just calling this results after the InputStream was consumed results in a
> “IOException : UT001000: Connection closed”.
>
>
>
>
>
> Is there any way to “consume” the request’s payload, but afterwards simply
> forward to the proxy target?
>
>
>
>
>
> Any help is really appreciated, Thanks!
>
>
>
> --
>
> Thomas Jäckle
>
>
>
>
>
> _______________________________________________
> undertow-dev mailing list
> undertow-dev at lists.jboss.org
> https://lists.jboss.org/mailman/listinfo/undertow-dev
More information about the undertow-dev
mailing list