Skip to content
GitLab
Projects Groups Snippets
  • /
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in / Register
  • O openapi-generator
  • Project information
    • Project information
    • Activity
    • Labels
    • Members
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
  • Issues 3,476
    • Issues 3,476
    • List
    • Boards
    • Service Desk
    • Milestones
  • Merge requests 402
    • Merge requests 402
  • CI/CD
    • CI/CD
    • Pipelines
    • Jobs
    • Schedules
  • Deployments
    • Deployments
    • Environments
    • Releases
  • Packages and registries
    • Packages and registries
    • Package Registry
    • Infrastructure Registry
  • Monitor
    • Monitor
    • Incidents
  • Analytics
    • Analytics
    • Value stream
    • CI/CD
    • Repository
  • Wiki
    • Wiki
  • Snippets
    • Snippets
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
Collapse sidebar
  • OpenAPI Tools
  • openapi-generator
  • Merge requests
  • !667

[rust-server] add support for '|' in path segments

  • Review changes

  • Download
  • Email patches
  • Plain diff
Merged Administrator requested to merge github/fork/Metaswitch/encode-vertical-bar into master Jul 27, 2018
  • Overview 0
  • Commits 2
  • Pipelines 0
  • Changes 4

Created by: bjgill

PR checklist

  • Read the contribution guidelines.
  • Ran the shell script under ./bin/ to update Petstore sample so that CIs can verify the change. (For instance, only need to run ./bin/{LANG}-petstore.sh and ./bin/security/{LANG}-petstore.sh if updating the {LANG} (e.g. php, ruby, python, etc) code generator or {LANG} client's mustache templates). Windows batch files can be found in .\bin\windows\.
  • Filed the PR against the correct branch: master, 4.0.x. Default: master.
  • Copied the technical committee to review the pull request if your PR is targeting a particular programming language. @frol @farcaller

Description of the PR

This merge request changes the characters that are encoded for object IDs to also include the vertical bar character (|). This is causing an issue with some of our microservices that are sending IDs containing the vertical bar character as part of the URL path to other services, which are responding with a 400 Bad request. Testing has shown that it is the presence of the unencoded vertical bar character that is causing this error. According to RFC 3986 this is neither unreserved nor sub-delims and so should be encoded.

Tested by building the microservice that was having the issue and capturing the network traffic. The vertical bar characters are now being correctly encoded as %7C.

There is another encode set called USERINFO_ENCODE_SET (https://docs.diesel.rs/percent_encoding/struct.USERINFO_ENCODE_SET.html) but this includes a lot of additional characters. It's possible that this set would be suitable in this situation but we were reluctant to change that much in a tool that is widely used in case it adversely impacts other users.

Many thanks to @rwincewicz, the original author of this contribution on whose behalf I am submitting this upstream.

Assignee
Assign to
Reviewers
Request review from
Time tracking
Source branch: github/fork/Metaswitch/encode-vertical-bar