Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

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

Merged
merged 2 commits into from
Jul 30, 2018
Merged

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

merged 2 commits into from
Jul 30, 2018

Conversation

bjgill
Copy link
Contributor

@bjgill bjgill commented Jul 27, 2018

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.

@wing328
Copy link
Member

wing328 commented Jul 30, 2018

@bjgill thanks for the PR. Please resolve the merge conflicts and I'll merge it into master.

@wing328 wing328 added this to the 3.2.0 milestone Jul 30, 2018
@bjgill
Copy link
Contributor Author

bjgill commented Jul 30, 2018

Thanks - now ready for merge once CI is green

@wing328 wing328 merged commit b0909ad into OpenAPITools:master Jul 30, 2018
@bjgill bjgill deleted the encode-vertical-bar branch July 30, 2018 10:40
A-Joshi pushed a commit to ihsmarkitoss/openapi-generator that referenced this pull request Feb 27, 2019
* Added encoding for vertical bar character in object IDs for client requests

* Updated sample
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

3 participants