Uploaded image for project: 'FishEye'
  1. FishEye
  2. FE-7505

Application Link Status page fails to load due to Case-sensitive checks for Headers

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Unresolved
    • Icon: Medium Medium
    • None
    • 4.8.10, 4.8.14
    • Integrations
    • None

      Issue Summary

      Trying to configure a new application link or loading the Application link page to list the status of existing Applinks will show "NETWORK ERROR" in red.
      The REST client while reading headers (eg. Content-Type) does a case-sensitive lookup for them (headers name should be case-insensitive). So when headers are in lower case it can't parse them properly. The problem is triggered by the proxy server, which is converting all HTTP header names to lower-case.

      Steps to Reproduce

      1. Setup two Atlassian applications behind a proxy
      2. Setup HAProxy with HTX enabled on one of the applications (2.x has it active by default)
      3. Configure the Application link between the two applications

      Expected Results

      The application link can be configured and established

      Actual Results

      The application link is not configured correctly with "NETWORK ERROR" due to wrong headers.

      The below exception is thrown in the atlassian-fisheye-<timestamp>.log file:

       WARN  [qtpxxxxxxx-xxx ] com.atlassian.applinks.core.DefaultApplinkStatusService DefaultApplinkStatusService-logApplinkError - Network error while attempting to retrieve status of Application Link '<applink-id>'
      

      No further logging is available in DEBUG or TRACE. Wire logging or HAR file is required to capture the headers.

      Workaround

      Disable the headers casing in your load balancer that's on the Target Application which Fisheye is trying to connect to (which would be Bitbucket or Jira Application)

      • For HAProxy 2.1 and newer:
        global
                h1-case-adjust content-type             Content-Type
                h1-case-adjust x-arequestid             X-AREQUESTID
                h1-case-adjust x-xss-protection         X-XSS-Protection
                h1-case-adjust x-content-type-options   X-Content-Type-Options
                h1-case-adjust x-asen                   X-ASEN
                h1-case-adjust x-ausername              X-AUSERNAME
        
        defaults
                option h1-case-adjust-bogus-client
        

              Unassigned Unassigned
              ashaleev Anton Shaleev
              Votes:
              1 Vote for this issue
              Watchers:
              5 Start watching this issue

                Created:
                Updated: