From: eunever32 on
Hi

I notice HttpServletResponse can set headers which I guess would be
received by the browser at the end of the request. I tried setting
HttpServletResponse.setHeader("Authorization", etc) but this wasn't
picked up the the target webserver.

Is it possible for a servlet (or filter) to insert such a header into
the HttpServletREQUEST before the request gets for example proxied to
another server?

I have searched the web but can find no evidence of a
HttpServletREQUEST.setHeader

What I'm describing would be similar to a new URLConnection doing
setRequestProperty
Or apache commons HttpClient GetMethod.addRequestHeader
("Authorization", ..)

Or XMLHttpRequest new ActiveXObject
('Microsoft.XMLHTTP').setRequestHeader

In the same way if a servletfilter or servlet wanted to insert a
header for the next tomcat shouldn't that be possible?

Thanks
From: Arne Vajhøj on
On 11-12-2009 12:27, eunever32(a)yahoo.co.uk wrote:
> I notice HttpServletResponse can set headers which I guess would be
> received by the browser at the end of the request. I tried setting
> HttpServletResponse.setHeader("Authorization", etc) but this wasn't
> picked up the the target webserver.

No it is picked up by the browser receiving the response.

> Is it possible for a servlet (or filter) to insert such a header into
> the HttpServletREQUEST before the request gets for example proxied to
> another server?

Yes - a filter can set data in the request.

> I have searched the web but can find no evidence of a
> HttpServletREQUEST.setHeader

No, but there is a setAttribute that can be used.

> What I'm describing would be similar to a new URLConnection doing
> setRequestProperty
> Or apache commons HttpClient GetMethod.addRequestHeader
> ("Authorization", ..)
>
> Or XMLHttpRequest new ActiveXObject
> ('Microsoft.XMLHTTP').setRequestHeader
>
> In the same way if a servletfilter or servlet wanted to insert a
> header for the next tomcat shouldn't that be possible?

Request setAttribute is only passed on to the processing
JSP page or servlet - it is nor forwarded to another site.

In fact nothing is so automatically.

You can iterate over request headers (and request attributes
if necesarry) and call setRequestProperty on your HttpURLConnection
to pass on everything.

Arne