Uploaded image for project: 'Jira Data Center'
  1. Jira Data Center
  2. JRASERVER-33520

RFC-2396: The pipe character "|" is not accepted

XMLWordPrintable

      Notes on the Fix Version/s

      This bug is fixed in:

      • 7.10.1+ for 7.10.x
      • 7.11.x and above
      • 7.6.7+ for 7.6.x only

      This means, 7.7.x, 7.8.x, and 7.9.x are all affected and there's no Fix Version in those minor releases. The reason why 7.6.x got a fix is because it's the current Enterprise release (as of Sep 11, 2018).

      Description

      Summary

      User action failed when the URL has pipe "|" character and JIRA is running behind load balancer.

      Steps to reproduce

      1. Setup JIRA behind load balancer
      2. Perform action, such as transition issue (or user logout)

      Expected result

      Issue gets transitioned successfully

      Actual Result

      Transition fails with Communications Breakdown - The JIRA server could not be contacted" error dialog thrown in the UI

      Explanation

      In Some JIRA URL, the pipe character is not accepted, which is as per stated in the following documentation:

      Quoting the paragraph which indicates that the pipe character is excluded:

      2.4.3. Excluded US-ASCII Characters

      Although they are disallowed within the URI syntax, we include here a
      description of those US-ASCII characters that have been excluded and
      the reasons for their exclusion.

      The control characters in the US-ASCII coded character set are not
      used within a URI, both because they are non-printable and because
      they are likely to be misinterpreted by some control mechanisms.

      control = <US-ASCII coded characters 00-1F and 7F hexadecimal>

      The space character is excluded because significant spaces may
      disappear and insignificant spaces may be introduced when URI are
      transcribed or typeset or subjected to the treatment of word-
      processing programs. Whitespace is also used to delimit URI in many
      contexts.

      space = <US-ASCII coded character 20 hexadecimal>

      The angle-bracket "<" and ">" and double-quote (") characters are
      excluded because they are often used as the delimiters around URI in
      text documents and protocol fields. The character "#" is excluded
      because it is used to delimit a URI from a fragment identifier in URI
      references (Section 4). The percent character "%" is excluded because
      it is used for the encoding of escaped characters.

      delims = "<" | ">" | "#" | "%" | <">

      Other characters are excluded because gateways and other transport
      agents are known to sometimes modify such characters, or they are
      used as delimiters.

      unwise =

      "{" | "}" | "|" | "\" | "^" | "[" | "]" | "`"
      

      Data corresponding to excluded characters must be escaped in order to
      be properly represented within a URI.

      Due to this, when our customer have JIRA running behind a load balancer that is RFC-2396 aware, some JIRA functionalities may not work. Some of the affected functions are:

      In both of the above operations, the URL contains the pipe character, which means that the operation will break when we have JIRA running behind a load balancer.

      Hence, it will be great if we can substitute the pipe character as needed so that JIRA will be compatible with RFC-2396

      Workaround

      Replace the pipes with URL encoded character %07C

              psuwala ΞΔ (Inactive)
              afaisal Ahmad Faisal (Inactive)
              Votes:
              22 Vote for this issue
              Watchers:
              40 Start watching this issue

                Created:
                Updated:
                Resolved: