Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [jetty-users] Possible bug in 9.4 HttpServletResponse redirect?


On Thu, Jan 5, 2017 at 4:14 PM, Silvio Bierman
<sbierman@xxxxxxxxxxxxxxxxxx> wrote:
> Hello all,
> With Jetty 9.4 I experience failure of some code that used to work with
> previous Jetty versions. But since I am unsure if my code is valid I want to
> check here first.
> My code is supposed to proxy an incoming request by forwarding it to another
> server (using HttpURLConnection) and then pass back the result to the
> response. In pseudo-code and somewhat simplified it does something like:
> - forward all headers from HttpServletRequest#getHeaderNames +
> HttpServletRequest#getHeaders via HttpURLConnection#addRequestProperty
> - forward request body from HttpServletRequest#getInputStream to
> HttpURLConnection#getOutputStream
> - pass back all headers from HttpURLConnection#getHeaderFields to
> HttpServletResponse#addHeader
> - pass back response body from HttpURLConnection#getInputStream to
> HttpServletResponse#getOutputStream
> - HttpServletResponse#sendError(HttpURLConnection#getResponseCode)

Oh wow !

You cannot do that, and I'm surprised it even worked in Jetty 9.3 - it
probably only does because the content is small.

You want to set the response code *before* writing any content via

The reason it does not work in 9.4.x is that we have cleaned up the
way we handle errors, that was pretty broken in 9.3.x (so I guess your
code was working because of a Jetty 9.3.x bug).

Have you considered using one of the many Jetty ProxyServlets, or at
least HttpClient instead of HttpURLConnection ?

Simone Bordet
Developer advice, training, services and support
from the Jetty & CometD experts.

Back to the top