Uploaded image for project: 'CXF'
  1. CXF
  2. CXF-6606

Encoded characters in URI are decoded multiple times during preprocess

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Closed
    • Major
    • Resolution: Fixed
    • 3.1.2
    • 3.1.3, 2.7.18, 3.0.7
    • JAX-RS
    • None
    • Unknown

    Description

      When given a url like /api/%255E/users.json, RequestPreprocessor#preprocess first does handleExtensionMappings, which creates a PathSegmentImpl with a single arg constructor, decoding the path. The path on Message is set to the decoded path with a call to updatePath if the .json extension was found within the extension mappings. Back in RequestPreprocessor#preprocess, the path returned will be decoded again within the call to UriInfoImpl#getPath.

      This causes the %255E in the path to be decoded the first time as %5E, then the second time as ^.

      I believe this could be fixed by constructing PathSegment within handleLanguageMappings and handleExtensionMappings with a second false argument.

      Attachments

        Activity

          People

            sergey_beryozkin Sergey Beryozkin
            tylerbrazier Tyler Brazier
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: