-
Notifications
You must be signed in to change notification settings - Fork 516
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
Semantics of url rewrite prefix replace - clarifications required #3592
Comments
I made this suggestion on Slack:
I think that making that change in validation could resolve this ambiguity, and even without validation, making this change to the spec would let implementations refuse rewrites that are likely to cause trouble. Anyone else have thoughts? |
I don't really understand the suggestion. What is a rewrite prefix and rewrite pattern? Might help to give some examples and use the same terms are the tables above (Request Path | Prefix Match | Replace Prefix | Modified Path) so we don't get things mixed up? |
This is a followup to a surprisingly long thread on slack.
Our spec has a very detailed table of expectations for
ReplacePrefixMatch
field. However it does not cover the case where thePrefix Match
(not the replacement) is "/".Adding the spec table here for convenience:
The ambiguity mostly comes down to the case where Prefix Match is "/". Below are a few examples:
AND NOT is a language I used to reflect the proposed standardization. You can also be read it as OR if you have a different opinion.
Although there is no easy way in envoy to achieve this behavior (other non-envoy implementations, please shout if this is easily possible with your proxies), @howardjohn came up with a regex that makes this possible (ref https://github.com/istio/istio/pull/54939/files#diff-a0e8831b6aefb0ef9b2cd269fcd726b26fd1104120950952b5217a7b104ba153R1668-R1669)
Hoping this thread would result in a change to our spec to explicitly iron it out.
/cc @mikemorris @arkodg @robscott @howardjohn @kflynn
The text was updated successfully, but these errors were encountered: