Handle query param names in case-sensitive way with njs-0.7.6 in NGINX 1.23.1 image. #220
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.
Proposed changes
(1)
NGINX 1.23.1 image includes njs-0.7.6, which now allows handling query
param names in case-sensitive manner. For example, in the query string
'?test=1&TEST=2', 'test' and 'TEST' are now different params.
This makes NGINX Kubernetes Gateway compliant with the Gateway API spec.
(2)
Updating NGINX to 1.23.1 image brought changes with njs-0.7.6, which now
supports examining all values of a query param.
The commit updates njs code for matching query params so that in the case
of multiple values of a query param, the first value is used. This is
consistent with the previous behavior and the Gateway API spec.
Additionally, the unit tests for 'paramsMatch' were fixed and updated
to cover multiple param values and different case of a param name.
This PR supersedes #178