Uploaded image for project: 'JBoss Enterprise Application Platform'
  1. JBoss Enterprise Application Platform
  2. JBEAP-19816

[GSS](7.3.z) UNDERTOW-1745 - Undertow access-log does not work for HTTP/2 POST request on HTTP Upgrade based connection

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Done
    • Icon: Major Major
    • 7.3.5.GA, 7.3.5.CR1
    • 7.3.1.GA
    • Undertow
    • None
    • +
    • Hide

      1. Enable "<access-log/>" inside undertow subsystem and make sure enable-http2="true" is specified on http-listener

              <subsystem xmlns="urn:jboss:domain:undertow:10.0" default-server="default-server" default-virtual-host="default-host" default-servlet-container="default" default-security-domain="other" statistics-enabled="${wildfly.undertow.statistics-enabled:${wildfly.statistics-enabled:false}}">
                  ...
                  <server name="default-server">
                      <http-listener name="default" socket-binding="http" redirect-socket="https" enable-http2="true"/>
                      <https-listener name="https" socket-binding="https" security-realm="ApplicationRealm" enable-http2="true"/>
                      <host name="default-host" alias="localhost">
                          <location name="/" handler="welcome-content"/>
                          <http-invoker security-realm="ApplicationRealm"/>
                          <access-log/> <!-- add this -->
                      </host>
                  </server>
                  ...
              </subsystem>
      

      2. Send the following HTTP/2 POST request by using curl which supports HTTP/2.

      curl --http2 http://localhost:8080/ -d "foo=bar"
      

      3. Check access-log.log

      Show
      1. Enable "<access-log/>" inside undertow subsystem and make sure enable-http2="true" is specified on http-listener <subsystem xmlns= "urn:jboss:domain:undertow:10.0" default -server= " default -server" default -virtual-host= " default -host" default -servlet-container= " default " default -security-domain= "other" statistics-enabled= "${wildfly.undertow.statistics-enabled:${wildfly.statistics-enabled: false }}" > ... <server name= " default -server" > <http-listener name= " default " socket-binding= "http" redirect-socket= "https" enable-http2= " true " /> <https-listener name= "https" socket-binding= "https" security-realm= "ApplicationRealm" enable-http2= " true " /> <host name= " default -host" alias= "localhost" > <location name= "/" handler= "welcome-content" /> <http-invoker security-realm= "ApplicationRealm" /> <access-log/> <!-- add this --> </host> </server> ... </subsystem> 2. Send the following HTTP/2 POST request by using curl which supports HTTP/2. curl --http2 http: //localhost:8080/ -d "foo=bar" 3. Check access-log.log

      Undertow access-log does not work for HTTP/2 POST request on HTTP Upgrade based connection. See also UNDERTOW-1745

      The web browsers basically do not support h2c via HTTP upgrade but only supports HTTP/2 through TLS ALPN. Also, most major Java HTTP clients do not support h2c via HTTP upgrade. As far as I know, "curl" supports it, though. So, I guess this issue has limited impacts.

              rhn-cservice-bbaranow Bartosz Baranowski
              rhn-support-mmiura Masafumi Miura
              Votes:
              0 Vote for this issue
              Watchers:
              8 Start watching this issue

                Created:
                Updated:
                Resolved: