Add fix for xdstp replacement for encoded authorities#10571
Merged
ejona86 merged 2 commits intogrpc:masterfrom Sep 22, 2023
Merged
Add fix for xdstp replacement for encoded authorities#10571ejona86 merged 2 commits intogrpc:masterfrom
ejona86 merged 2 commits intogrpc:masterfrom
Conversation
ejona86
approved these changes
Sep 22, 2023
Member
|
The PR description had a lot of good information in it. Please include that information in the commit in the future. It is easiest to write that into the commit and then create the PR, so that github copies the description from the commit. |
DNVindhya
pushed a commit
to DNVindhya/grpc-java
that referenced
this pull request
Oct 5, 2023
In ac35ab6 the logic in xDS Name resolver was changed to support encoded authorities. This seems to cause an issue for xdstp replacements which would percent encode the authority for the replacement causing double encoding. For example: URI = xds:///path/to/service Authority = path%2Fto%2Fservice xdstp resource = xdstp:///envoy.config.listener.v3.Listener/path%252Fto%252Fservice Here the authority is encoded due to slashes and during replacement we percent encode it again causing %2F to change to %252F. To avoid this issue, use the encoded authority only for the getServiceAuthority() API and for all other use cases retain the unencoded authority.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to subscribe to this conversation on GitHub.
Already have an account?
Sign in.
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Recently the logic in xDS Name resolver was changed to support encoded authorities: #10207.
This seems to cause an issue for xdstp replacements which would percent encode the authority for the replacement causing double encoding.
For example:
URI = xds:///path/to/service
Authority = path%2Fto%2Fservice
xdstp resource = xdstp:///envoy.config.listener.v3.Listener/path%252Fto%252Fservice
Here the authority is encoded due to slashes and during replacement we percent encode it again causing %2F to change to %252F.
To avoid this issue, use the encoded authority only for the getServiceAuthority() API and for all other use cases retain the unencoded authority.
@ejona86