FYI,

Bug raised for Tomcat: 50453
https://issues.apache.org/bugzilla/show_bug.cgi?id=50453

Regards,

Brett

On 10 December 2010 14:15, Brett Delle Grazie
<[email protected]>wrote:

> Jim,
>
> Thanks, I've raised the issue with tomcat users and they recommended to
> create a bugzilla entry, which I will do.
> I will also point them to this mailing list for the definition.
>
> I'm using stunnel so the second suggestion won't work.
> The most simple and obvious solution is to use a different header that
> won't be used elsewhere - but that's a work-around.
>
> Thanks for your help.
>
>
> On 10 December 2010 13:30, Jim Riggs 
> <[email protected]>wrote:
>
>> On Dec 10, 2010, at 6:42 AM, Brett Delle Grazie wrote:
>>
>> > Hi,
>> >
>> > I'm using HAproxy 1.4.8 on RHEL5 (fully up-to-date).
>> > I'm using the 'option forwardfor'
>> >
>> > In certain circumstances, the client has already got an X-Forwarded-For
>> header in the request.
>> >
>> > HAproxy in this instance adds a second X-Forwarded-For header rather
>> than extending the existing header.
>> >
>> > This causes a problem on our Tomcat backend because the RemoteIP valve
>> (part of Tomcat) that is used appears to examine only the first header.
>> >
>> > 1. Is there some way to get HAproxy to extend the existing
>> X-Forwarded-For header rather than adding a new one
>> >
>> > 2. Does the stunnel patch do the same thing or does it extend the
>> existing X-Forwarded-For header?
>>
>>
>> It sounds like this is an issue with the RemoteIP valve.  (I haven't
>> looked at its code yet.)  According to the HTTP spec, headers that allow
>> multiple values can be specified as either a comma-separated list or
>> multiple separate headers:
>>
>> "Multiple message-header fields with the same field-name MAY be present in
>> a message if and only if the entire field-value for that header field is
>> defined as a comma-separated list [i.e., #(values)]. It MUST be possible to
>> combine the multiple header fields into one "field-name: field-value" pair,
>> without changing the semantics of the message, by appending each subsequent
>> field-value to the first, each separated by a comma. The order in which
>> header fields with the same field-name are received is therefore significant
>> to the interpretation of the combined field value, and thus a proxy MUST NOT
>> change the order of these field values when a message is forwarded."
>>
>> That is, the following are semantically equivalent according to the HTTP
>> spec:
>>
>> X-Forwarded-For: 192.168.100.123
>> X-Forwarded-For: 127.0.0.1
>>
>> and
>>
>> X-Forwarded-For: 192.168.100.123, 127.0.0.1
>>
>> In fact, proxies and caches may make these changes in-flight.
>>
>> If you don't need the client's existing X-Forwarded-For information and
>> can't wait for a Tomcat fix, you can always do a `reqidel
>> ^X-Forwarded-Proto:.*' in your haproxy config.  Then the only XFF header you
>> will get in Tomcat will be from haproxy.  (This may cause issues if you're
>> using stunnel, though.)
>>
>>
>> ______________________________________________________________________
>> This email has been scanned by the MessageLabs Email Security System.
>> For more information please visit http://www.messagelabs.com/email
>> ______________________________________________________________________
>>
>
> --
> Best Regards,
>
> Brett Delle Grazie
>
>


-- 
Best Regards,

Brett Delle Grazie

Reply via email to