Thanks Chuck, that actually worked!

Chuck Caldarale <n82...@gmail.com> ezt írta (időpont: 2024. nov. 28., Cs, 2:15):
>
>
> > On Nov 27, 2024, at 17:08, Balazs Jantek <jant...@gmail.com> wrote:
> >
> > I am debugging a scenario where Tomcat 10.1.26 is working behind an
> > Application Gateway on Microsoft Azure.
> >
> > The webpage makes a request to /favicon.ico which goes through the
> > RemoteIpValve, which correctly identifies that the request is an
> > internal one, based on the beginning of the IPv4 address, but then
> > populates the http requests's remote address value with the header
> > "x-forwarded-for" received from Azure, which contains the port number
> > appended to the IP with a colon.
>
>
> Leave it to Microsoft to violate standards (or at least standard practice) by 
> adding a port number where it isn’t warranted.
>
>
> > This seems to break the internal web application, which assumes that
> > ServletRequest.getRemoteAddr() only contains the hostname/IP, but not
> > a port number.
> >
> > As far as I can see the value in x-forwarded-for is less defined, but
> > the value present in getRemoteAddr() is strictly something without
> > port number.
> >
> > Is this something that can be worked around with configuration, or
> > does it look like a bug worth fixing in the RemoteIpValve?
>
>
> There doesn’t appear to be anything in Tomcat to compensate for Azure’s bad 
> behavior here, but you might be able to fix it in Application Gateway. I’ve 
> never configured anything in Azure, but this web page seems to indicate that 
> you could override the x-forwarded-for header by setting 
> add_x_forwarded_for_proxy:
>
> https://learn.microsoft.com/en-us/azure/application-gateway/rewrite-http-headers-url
>
> ”The X-Forwarded-For client request header field with the client_ipvariable 
> (see explanation later in this table) appended to it in the format IP1, IP2, 
> IP3, and so on. If the X-Forwarded-For field isn't in the client request 
> header, the add_x_forwarded_for_proxy variable is equal to the $client_ip 
> variable. This variable is useful when you want to rewrite the 
> X-Forwarded-For header set by Application Gateway so that the header contains 
> only the IP address without the port information [emphasis added].”
>
> Look at the section titled "Remove port information from the X-Forwarded-For 
> header” in the above web page for an example.
>
> So maybe…
>
>
>   - Chuck
>

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org
For additional commands, e-mail: users-h...@tomcat.apache.org

Reply via email to