Uploaded image for project: 'OpenShift Bugs'
  1. OpenShift Bugs
  2. OCPBUGS-26933

Console plugin proxy changes status code to 200

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Done-Errata
    • Icon: Major Major
    • None
    • 4.15.0
    • Management Console
    • None
    • Important
    • No
    • False
    • Hide

      None

      Show
      None
    • Hide
      * Previously, the console plugin proxy was not copying the status code from plugin service responses. This caused all responses from the plugin service to have a 200 status, causing unexpected behavior, especially around browser caching. With this update, the console proxy logic was updated to forward the plugin service proxy response status code. Proxied plugin requests now behave as expected. (link:https://issues.redhat.com/browse/OCPBUGS-26933[*OCPBUGS-26933*])
      Show
      * Previously, the console plugin proxy was not copying the status code from plugin service responses. This caused all responses from the plugin service to have a 200 status, causing unexpected behavior, especially around browser caching. With this update, the console proxy logic was updated to forward the plugin service proxy response status code. Proxied plugin requests now behave as expected. (link: https://issues.redhat.com/browse/OCPBUGS-26933 [* OCPBUGS-26933 *])
    • Bug Fix
    • Done

      Description of problem:

      Console is overriding status code of HTTP requests proxied to dynamic plugin services

      Version-Release number of selected component (if applicable):

      4.15.0-ec.2

      How reproducible:

      Always

      Steps to Reproduce:

      1. Create an OpenShift 4.15.0-ec.2 cluster or newer
      2. Install ACM 2.9.1 from OperatorHub and create a MultiClusterHub operand
      3. Expose the plugin service: oc -n multicluster-engine expose service console-mce-console
      4. Set tls.termination to passthrough on route/console-mce-console
      5. Compare responses from curling the proxy and the service directly.
          

      Actual results:

      $ curl -k -D - -H "Cookie: <REDACTED>" -H "If-Modified-Since: Thu, 07 Dec 2023 14:45:30 GMT" https://console-openshift-console.apps.kevin-415.dev02.red-chesterfield.com/api/plugins/mce/plugin-manifest.json
      HTTP/1.1 200 OK
      cache-control: no-cache
      date: Wed, 10 Jan 2024 21:16:10 GMT
      last-modified: Thu, 07 Dec 2023 14:45:30 GMT
      referrer-policy: strict-origin-when-cross-origin
      x-content-type-options: nosniff
      x-dns-prefetch-control: off
      x-frame-options: DENY
      x-xss-protection: 1; mode=block
      content-length: 0 
      
      curl -k -D - -H "If-Modified-Since: Thu, 07 Dec 2023 14:45:30 GMT" https://console-mce-console-multicluster-engine.apps.kevin-415.dev02.red-chesterfield.com/plugin/plugin-manifest.json
      HTTP/2 304 
      cache-control: no-cache
      last-modified: Thu, 07 Dec 2023 14:45:30 GMT
      date: Wed, 10 Jan 2024 21:26:33 GMT

      Expected results:

      Response code of 304 should be returned by the proxy route, not changed to 200.

      Additional info:

      Introduced by https://github.com/openshift/console/pull/13272    

              rh-ee-jonjacks Jon Jackson
              rh-ee-kcormier Kevin Cormier
              YaDan Pei YaDan Pei
              Votes:
              0 Vote for this issue
              Watchers:
              5 Start watching this issue

                Created:
                Updated:
                Resolved: