-
Notifications
You must be signed in to change notification settings - Fork 8.5k
Ingresses: Allow . in Exact and Prefix paths.
#13798
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
Ingresses: Allow . in Exact and Prefix paths.
#13798
Conversation
✅ Deploy Preview for kubernetes-ingress-nginx canceled.
|
|
Welcome @ZPascal! |
|
Hi @ZPascal. Thanks for your PR. I'm waiting for a kubernetes member to verify that this patch is reasonable to test. If it is, they should reply with Once the patch is verified, the new status will be reflected by the I understand the commands that are listed here. Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes-sigs/prow repository. |
5ff3e06 to
7e04818
Compare
Gacko
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
/retitle Ingresses: Allow . in Exact and Prefix paths.
/triage accepted
/kind bug
/priority backlog
/lgtm
. in Exact and Prefix paths.
|
[APPROVALNOTIFIER] This PR is APPROVED This pull-request has been approved by: Gacko, ZPascal The full list of commands accepted by this bot can be found here. The pull request process is described here
Needs approval from an approver in each of these files:
Approvers can indicate their approval by writing |
|
/cherry-pick release-1.13 |
|
/cherry-pick release-1.12 |
|
@Gacko: once the present PR merges, I will cherry-pick it on top of In response to this:
Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes-sigs/prow repository. |
|
@Gacko: once the present PR merges, I will cherry-pick it on top of In response to this:
Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes-sigs/prow repository. |
|
@Gacko: new pull request created: #13799 In response to this:
Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes-sigs/prow repository. |
|
@Gacko: new pull request created: #13800 In response to this:
Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes-sigs/prow repository. |
|
Thank you @Gacko, for the fast review! |
PR Summary: Enable “.” in path validation to support IETF well-known ACME paths
Summary
This PR updates path validation to allow the dot character, enabling standardized well-known endpoints such as
/.well-known/acme-challenge/. It also adds tests that:/.well-known/acme-challenge/for both Prefix and Exact path types.$,#, and newline characters.Motivation
/.well-known/for well-known resources (RFC 5785), which ACME relies on for HTTP-01 challenges./.well-known/acme-challenge/...(RFC 8555). Prior validation disallowed the dot, preventing compliant paths.What Changed
_,-, and/./.well-known/acme-challenge/with both Prefix and Exact types.$,#, and newline.IETF RFC Alignment
/.well-known/...namespace, allowing standardized discovery endpoints and ACME challenges./.well-known/acme-challenge/..., aligning with the ACME challenge location requirements.Missing RFC Features and Intentional Restrictions
While this change improves standards alignment, it does not implement the full breadth of URI semantics defined by the IETF. Notable gaps and deliberate restrictions include:
! $ & ' ( ) * + , ; = : @). Some of these are intentionally rejected to avoid misconfiguration or ambiguity..and..) are not interpreted or canonicalized; they are just allowed as literal characters within the approved set.These limitations are intentional to keep validation simple, predictable, and safe for this controller’s context. Further RFC compliance can be considered if needed, preferably with targeted, endpoint-specific validation (e.g., stricter checks only for
/.well-known/acme-challenge).Security and Compatibility
$,#, newline) that can cause parsing ambiguities or unsafe interpretations in downstream components.Testing
$,#, and newline characters to ensure they remain disallowed.Documentation
/.well-known/acme-challenge/and common ACME integrations.What this PR does / why we need it:
The PR adds support for the IETF RFCs 5785, 8555, and 3986. It also solves #11176.
Types of changes
Which issue/s this PR fixes
fixes #11176
How Has This Been Tested?
I've executed the corresponding unit tests.
Checklist: