Uploaded image for project: 'Traffic Server'
  1. Traffic Server
  2. TS-3956

header_rewrite applies strange logic with = operator and whitespace

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Closed
    • Major
    • Resolution: Fixed
    • None
    • 6.1.0
    • Plugins
    • None

    Description

      It appears that whitespace causes weird behavior with header_rewrite, for example:

      If you remove the white space before the = and the quotes it appears to behave correctly. This whitespace issue is likely to cause strange bugs and needs to be fixed.

      cond %{READ_REQUEST_HDR_HOOK}
      cond %{CLIENT-HEADER:Host} /^localhost$/ [AND]
      cond %{CLIENT-HEADER:non_existent_header} = "shouldnt_exist_anyway" [AND]
      add-header X-HeaderRewriteApplied true
      

      With the following request:

      curl -v localhost/
      

      Header_rewrite will incorrectly apply the rule:

      [Oct  4 20:56:49.245] Server {0x7ffff61b5700} DIAG: (header_rewrite) Building resources, hook=TS_HTTP_READ_REQUEST_HDR_HOOK
      [Oct  4 20:56:49.245] Server {0x7ffff61b5700} DIAG: (header_rewrite) 	Adding TXN client request header buffers
      [Oct  4 20:56:49.245] Server {0x7ffff61b5700} DIAG: (header_rewrite) Getting Header: Host, field_loc: 0x7fffd02070d0
      [Oct  4 20:56:49.245] Server {0x7ffff61b5700} DIAG: (header_rewrite) Appending HEADER(Host) to evaluation value -> localhost
      [Oct  4 20:56:49.245] Server {0x7ffff61b5700} DIAG: (header_rewrite) Test regular expression ^localhost$ : localhost
      [Oct  4 20:56:49.245] Server {0x7ffff61b5700} DIAG: (header_rewrite) Successfully found regular expression match
      [Oct  4 20:56:49.245] Server {0x7ffff61b5700} DIAG: (header_rewrite) Evaluating HEADER(): localhost - rval: 1
      [Oct  4 20:56:49.245] Server {0x7ffff61b5700} DIAG: (header_rewrite) Getting Header: non_existent_header, field_loc: (nil)
      [Oct  4 20:56:49.245] Server {0x7ffff61b5700} DIAG: (header_rewrite) Evaluating HEADER():  - rval: 1
      [Oct  4 20:56:49.245] Server {0x7ffff61b5700} DIAG: (header_rewrite) OperatorAddHeader::exec() invoked on header X-HeaderRewriteApplied: true
      [Oct  4 20:56:49.245] Server {0x7ffff61b5700} DIAG: (header_rewrite)    Adding header X-HeaderRewriteApplied
      

      Attachments

        Issue Links

          Activity

            People

              briang Brian Geffon
              briang Brian Geffon
              Votes:
              0 Vote for this issue
              Watchers:
              3 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: