Uploaded image for project: 'Jenkins'
  1. Jenkins
  2. JENKINS-62987

Wrong information about UTF-8 url decoding

    XMLWordPrintable

    Details

    • Type: Bug
    • Status: Resolved (View Workflow)
    • Priority: Major
    • Resolution: Done
    • Component/s: core
    • Labels:
      None
    • Environment:
      WebSphere Liberty Profile or OpenLiberty, any version
    • Similar Issues:

      Description

      Problem description

      Jenkins displays this banner in the settings:

      Ihr Servlet-Container verwendet kein UTF-8, um URLs zu dekodieren. Falls Sie Nicht-ASCII-Zeichen in Elementnamen usw. verwenden, kann dies Probleme mit sich bringen. Beachten Sie bitte die Hinweise zu Servlet-Containern bzw. Tomcat i18N).

      However, this is not true. Liberty Profile uses UTF-8 by default for decoding URIs.

      Sources:

       

      How to reproduce

      1. use ./bin/server create jenkins to create a new serer.
      2. Download the jenkins .war file to the apps directory of the server ($WLP_INSTALL_DIR/usr/servers/jenkins/apps).
      3. Modify the server.xml to contain these config items:
      <featureManager>
       <feature>servlet-4.0</feature>
       <feature>websocket-1.1</feature>
       <feature>localConnector-1.0</feature>
       <feature>jaxb-2.2</feature>
       <feature>jaxws-2.2</feature>
      </featureManager>
      
      <httpEndpoint id="defaultHttpEndpoint" host="*" httpPort="8080" httpsPort="-1" />
      <application id="jenkins" location="jenkins.war" name="jenkins" type="war" context-root="/" />
      
      1. Modify the file server.env to contain a JENKINS_HOME
      2. Start Liberty Profile (./bin/server start jenkins)

      Go to the settings and see the misleading banner

      Expected behaviour

      Jenkins does not display this banner, as OpenLiberty uses UTF-8 to decode URLs.

      Actual behaviour

      Jenkins does display this banner, which is misleading.

      Suggested fix

      Rework the URL check to display a proper message and how it got this information.

       

      I guess the issue might be related to my reverse proxy, which is set up in front of liberty profile. But as the message does not display why jenkins thinks the container is set up in a wrong way, I cannot confirm this behaviour.

       

       

        Attachments

          Activity

          bmarwell Ben M created issue -
          bmarwell Ben M made changes -
          Field Original Value New Value
          Description h2. Problem description

          Jenkins displays this banner in the settings:
          {quote}!https://build.was.intern/static/04d23dc0/images/none.gif|width=1,height=16! Ihr Servlet-Container verwendet kein UTF-8, um URLs zu dekodieren. Falls Sie Nicht-ASCII-Zeichen in Elementnamen usw. verwenden, kann dies Probleme mit sich bringen. Beachten Sie bitte die Hinweise zu [Servlet-Containern|https://jenkins.io/redirect/configuring-servlet-containers] bzw. [Tomcat i18N|https://jenkins.io/redirect/troubleshooting/utf8-url-decoding]).
          {quote}
          However, this is not true. Liberty Profile uses UTF-8 by default for decoding URIs.

          Sources:
           * [https://www.ibm.com/mysupport/s/question/0D50z00005pgf5xCAA/how-to-set-url-encoding-to-utf8?language=en_US]
           * [https://openliberty.io/docs/ref/config/webContainer.html]

           
          h2. How to reproduce
           # use {{./bin/server}} create jenkins to create a new serer.
           # Download the jenkins {{.war}} file to the apps directory of the server ({{$WLP_INSTALL_DIR/usr/servers/jenkins/apps}}).
           # Modify the {{server.xml}} to contain these config items:
          {{<featureManager>}}
          {{ <feature>jsp-2.3</feature>}}
          {{ <feature>servlet-4.0</feature>}}
          {{ <feature>websocket-1.1</feature>}}
          {{ <feature>localConnector-1.0</feature>}}
          {{ <feature>jaxb-2.2</feature>}}
          {{ <feature>jaxws-2.2</feature>}}
          {{ </featureManager>}}
          {{ <httpEndpoint id="defaultHttpEndpoint" host="*" httpPort="8080" httpsPort="-1" />}}
          {{ <application id="jenkins" location="jenkins.war" name="jenkins" type="war" context-root="/" />}}
           # Modify the file server.env to contain a JENKINS_HOME

           # Start Liberty Profile ({{./bin/server start jenkins}})

          Go to the settings and see the misleading banner
          h2. Expected behaviour

          Jenkins does not display this banner, as OpenLiberty uses UTF-8 to decode URLs.
          h2. Actual behaviour

          Jenkins does display this banner, which is misleading.
          h2. Suggested fix

          Rework the URL check to display a proper message and how it got this information.

           

          I guess the issue might be related to my reverse proxy, which is set up in front of liberty profile. But as the message does not display why jenkins thinks *the container* is set up in a wrong way, I cannot confirm this behaviour.

           

           
          h2. Problem description

          Jenkins displays this banner in the settings:
          {quote}!https://build.was.intern/static/04d23dc0/images/none.gif|width=1,height=16! Ihr Servlet-Container verwendet kein UTF-8, um URLs zu dekodieren. Falls Sie Nicht-ASCII-Zeichen in Elementnamen usw. verwenden, kann dies Probleme mit sich bringen. Beachten Sie bitte die Hinweise zu [Servlet-Containern|https://jenkins.io/redirect/configuring-servlet-containers] bzw. [Tomcat i18N|https://jenkins.io/redirect/troubleshooting/utf8-url-decoding]).
          {quote}
          However, this is not true. Liberty Profile uses UTF-8 by default for decoding URIs.

          Sources:
           * [https://www.ibm.com/mysupport/s/question/0D50z00005pgf5xCAA/how-to-set-url-encoding-to-utf8?language=en_US]
           * [https://openliberty.io/docs/ref/config/webContainer.html]

           
          h2. How to reproduce
           # use {{./bin/server}} create jenkins to create a new serer.
           # Download the jenkins {{.war}} file to the apps directory of the server ({{$WLP_INSTALL_DIR/usr/servers/jenkins/apps}}).
           # Modify the {{server.xml}} to contain these config items:

          {code:java}
          <featureManager>
           <feature>jsp-2.3</feature>
           <feature>servlet-4.0</feature>
           <feature>websocket-1.1</feature>
           <feature>localConnector-1.0</feature>
           <feature>jaxb-2.2</feature>
           <feature>jaxws-2.2</feature>
          </featureManager>

          <httpEndpoint id="defaultHttpEndpoint" host="*" httpPort="8080" httpsPort="-1" />
          <application id="jenkins" location="jenkins.war" name="jenkins" type="war" context-root="/" />
          {code}

           # Modify the file server.env to contain a JENKINS_HOME
           # Start Liberty Profile ({{./bin/server start jenkins}})

          Go to the settings and see the misleading banner
          h2. Expected behaviour

          Jenkins does not display this banner, as OpenLiberty uses UTF-8 to decode URLs.
          h2. Actual behaviour

          Jenkins does display this banner, which is misleading.
          h2. Suggested fix

          Rework the URL check to display a proper message and how it got this information.

           

          I guess the issue might be related to my reverse proxy, which is set up in front of liberty profile. But as the message does not display why jenkins thinks *the container* is set up in a wrong way, I cannot confirm this behaviour.

           

           
          danielbeck Daniel Beck made changes -
          Resolution Cannot Reproduce [ 5 ]
          Status Open [ 1 ] Closed [ 6 ]
          bmarwell Ben M made changes -
          Attachment Screenshot_20200724_155902.png [ 51994 ]
          bmarwell Ben M made changes -
          Assignee Daniel Beck [ danielbeck ]
          Resolution Cannot Reproduce [ 5 ]
          Status Closed [ 6 ] Reopened [ 4 ]
          bmarwell Ben M made changes -
          Attachment Screenshot_20200724_161152.png [ 51995 ]
          danielbeck Daniel Beck made changes -
          Status Reopened [ 4 ] Open [ 1 ]
          danielbeck Daniel Beck made changes -
          Assignee Daniel Beck [ danielbeck ]
          bmarwell Ben M made changes -
          Description h2. Problem description

          Jenkins displays this banner in the settings:
          {quote}!https://build.was.intern/static/04d23dc0/images/none.gif|width=1,height=16! Ihr Servlet-Container verwendet kein UTF-8, um URLs zu dekodieren. Falls Sie Nicht-ASCII-Zeichen in Elementnamen usw. verwenden, kann dies Probleme mit sich bringen. Beachten Sie bitte die Hinweise zu [Servlet-Containern|https://jenkins.io/redirect/configuring-servlet-containers] bzw. [Tomcat i18N|https://jenkins.io/redirect/troubleshooting/utf8-url-decoding]).
          {quote}
          However, this is not true. Liberty Profile uses UTF-8 by default for decoding URIs.

          Sources:
           * [https://www.ibm.com/mysupport/s/question/0D50z00005pgf5xCAA/how-to-set-url-encoding-to-utf8?language=en_US]
           * [https://openliberty.io/docs/ref/config/webContainer.html]

           
          h2. How to reproduce
           # use {{./bin/server}} create jenkins to create a new serer.
           # Download the jenkins {{.war}} file to the apps directory of the server ({{$WLP_INSTALL_DIR/usr/servers/jenkins/apps}}).
           # Modify the {{server.xml}} to contain these config items:

          {code:java}
          <featureManager>
           <feature>jsp-2.3</feature>
           <feature>servlet-4.0</feature>
           <feature>websocket-1.1</feature>
           <feature>localConnector-1.0</feature>
           <feature>jaxb-2.2</feature>
           <feature>jaxws-2.2</feature>
          </featureManager>

          <httpEndpoint id="defaultHttpEndpoint" host="*" httpPort="8080" httpsPort="-1" />
          <application id="jenkins" location="jenkins.war" name="jenkins" type="war" context-root="/" />
          {code}

           # Modify the file server.env to contain a JENKINS_HOME
           # Start Liberty Profile ({{./bin/server start jenkins}})

          Go to the settings and see the misleading banner
          h2. Expected behaviour

          Jenkins does not display this banner, as OpenLiberty uses UTF-8 to decode URLs.
          h2. Actual behaviour

          Jenkins does display this banner, which is misleading.
          h2. Suggested fix

          Rework the URL check to display a proper message and how it got this information.

           

          I guess the issue might be related to my reverse proxy, which is set up in front of liberty profile. But as the message does not display why jenkins thinks *the container* is set up in a wrong way, I cannot confirm this behaviour.

           

           
          h2. Problem description

          Jenkins displays this banner in the settings:
          {quote}!https://build.was.intern/static/04d23dc0/images/none.gif|width=1,height=16! Ihr Servlet-Container verwendet kein UTF-8, um URLs zu dekodieren. Falls Sie Nicht-ASCII-Zeichen in Elementnamen usw. verwenden, kann dies Probleme mit sich bringen. Beachten Sie bitte die Hinweise zu [Servlet-Containern|https://jenkins.io/redirect/configuring-servlet-containers] bzw. [Tomcat i18N|https://jenkins.io/redirect/troubleshooting/utf8-url-decoding]).
          {quote}
          However, this is not true. Liberty Profile uses UTF-8 by default for decoding URIs.

          Sources:
           * [https://www.ibm.com/mysupport/s/question/0D50z00005pgf5xCAA/how-to-set-url-encoding-to-utf8?language=en_US]
           * [https://openliberty.io/docs/ref/config/webContainer.html]

           
          h2. How to reproduce
           # use {{./bin/server}} create jenkins to create a new serer.
           # Download the jenkins {{.war}} file to the apps directory of the server ({{$WLP_INSTALL_DIR/usr/servers/jenkins/apps}}).
           # Modify the {{server.xml}} to contain these config items:

          {code:java}
          <featureManager>
           <feature>servlet-4.0</feature>
           <feature>websocket-1.1</feature>
           <feature>localConnector-1.0</feature>
           <feature>jaxb-2.2</feature>
           <feature>jaxws-2.2</feature>
          </featureManager>

          <httpEndpoint id="defaultHttpEndpoint" host="*" httpPort="8080" httpsPort="-1" />
          <application id="jenkins" location="jenkins.war" name="jenkins" type="war" context-root="/" />
          {code}
           # Modify the file server.env to contain a JENKINS_HOME
           # Start Liberty Profile ({{./bin/server start jenkins}})

          Go to the settings and see the misleading banner
          h2. Expected behaviour

          Jenkins does not display this banner, as OpenLiberty uses UTF-8 to decode URLs.
          h2. Actual behaviour

          Jenkins does display this banner, which is misleading.
          h2. Suggested fix

          Rework the URL check to display a proper message and how it got this information.

           

          I guess the issue might be related to my reverse proxy, which is set up in front of liberty profile. But as the message does not display why jenkins thinks *the container* is set up in a wrong way, I cannot confirm this behaviour.

           

           
          bmarwell Ben M made changes -
          Resolution Done [ 10000 ]
          Status Open [ 1 ] Resolved [ 5 ]

            People

            Assignee:
            Unassigned Unassigned
            Reporter:
            bmarwell Ben M
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

              Dates

              Created:
              Updated:
              Resolved: