Hi,

to me both issues looked related, but yes - it is a bit different. In my case it affects HTTP/1.1 (as NGINX forwards using that protocol), in Silvio's it looks HTTP/2.

If I have a bit of time I will try to write a small embedded jetty reproducer that returns different results for Jetty 10 and 12.

Because Silvio said, that he uses HostHeaderCustomizer I thought it might be related. But difference is that for me the getRequestURL() contains wrong port, but for him it is the host header (I have no checked the Host header here, as the servilet in questin was using getRequestURL()).

Uwe

Am 14.08.2023 um 00:54 schrieb Silvio Bierman via jetty-users:
Issue opened:

https://github.com/eclipse/jetty.project/issues/10306

On 13-08-2023 01:31, Greg Wilkins via jetty-users wrote:
Actually,

I think Uwe's and Silvio's problems are similar but different.

Silvio, you have no forwarded request customizer headers and a real "demo.jambo.software:8443" as the host header value.  This could be a http2 issue in recreating that header.
Uwe's issue is more about the customizer.

So Silvio, perhaps open a second issue?

cheers

P.S. We expect at least a monthly cadence of 12.0.x releases.



On Sun, 13 Aug 2023 at 08:52, Greg Wilkins <[email protected]> wrote:

    Silvio,

    I'll respond more in Uwe's issue.  Please post your details there
    to help the triage.

    cheers



    On Sun, 13 Aug 2023 at 05:19, Uwe Schindler via jetty-users
    <[email protected]> wrote:

        I opened: https://github.com/eclipse/jetty.project/issues/10304

        Am 12.08.2023 um 19:30 schrieb Uwe Schindler via jetty-users:

        I have seen the same after upgrading my project to Java 12.
        The problem is that all Customizers are not able to
        correctly set the port number.

        This is a blocker issue, because it makes it impossible to
        setup this common setup:

          * NGINX as user facing web server with HTTPS enabled
          * NGINX forwarding the requests to jetty listen only on
            localhost with some arbitrary port number (in my case
            8081). NGINX sets the following headers:
            X-Forwarded-For, X-Forwarded-Proto, original "Host"
            header as sent by client (no rewriting)
          * Jetty with: http_config.addCustomizer(new
            ForwardedRequestCustomizer());
          * Jetty 10 works fine it reads the clien't IP address and
            all other information from X-Forwarded-For, the scheme
            is read from X-Forwarded-Proto, and host header is
            coming from "Host" header. It also extracts the port
            number from the host.
          * Jetty 12 is setup in same way, it successfully extracts
            the client's IP address and also it returns secure=true
            and uses "https://"; for
            javax.servlet.HttServletRequest#getRequestURL(). But it
            always adds its own private port number. I also tried to
            use setForcedHost("xyz:443") to make sure it sees a port
            number. It still constructs all URLs with port number
            8081 where it listens on.

        I will open a bug report. From my experience the
        "customize()" method in the RequestCustomizer does
        everything right also also returns the port number, but the
        javax.servlet API seems to still use the port number used by
        the connector's channel.

        I reverted back to Jetty 10. This won't work here. If you
        have any suggestion to get the port corrcet, tell me,
        everything like subclassing and implementing my own
        cutsomizer did not work. I was not able to debug through
        everything and figure out where the listener port gets
        injected again.

        I can say: With current status Jetty 12 is unuseable with
        the common proxy setup using ForwardedRequestCustomizer as
        it tried to always inject its own hidden/private port number
        instead of the default for the port as negotiated by
        client/proxy with the Host header.

-- Uwe Schindler [email protected] ASF Member, Member of PMC and Committer of Apache Lucene and Apache Solr
        Bremen, Germany
        https://lucene.apache.org/
        https://solr.apache.org/

        _______________________________________________
        jetty-users mailing list
        [email protected]
        To unsubscribe from this list, visit
        https://www.eclipse.org/mailman/listinfo/jetty-users



-- Greg Wilkins <[email protected]> CTO http://webtide.com



--
Greg Wilkins <[email protected]> CTO http://webtide.com

_______________________________________________
jetty-users mailing list
[email protected]
To unsubscribe from this list, 
visithttps://www.eclipse.org/mailman/listinfo/jetty-users


_______________________________________________
jetty-users mailing list
[email protected]
To unsubscribe from this list, 
visithttps://www.eclipse.org/mailman/listinfo/jetty-users

--
Uwe Schindler
[email protected] ASF Member, Member of PMC and Committer of Apache Lucene and Apache Solr
Bremen, Germany
https://lucene.apache.org/
https://solr.apache.org/
_______________________________________________
jetty-users mailing list
[email protected]
To unsubscribe from this list, visit 
https://www.eclipse.org/mailman/listinfo/jetty-users

Reply via email to