From 25ab6f46d0e5df9fe5b7c23b7bdcf888a809c5d4 Mon Sep 17 00:00:00 2001 From: Michael Date: Tue, 24 Mar 2026 17:32:05 +0100 Subject: [PATCH] Fix allow colons and tildes in api.basePath validation --- pkg/config/static/static_config.go | 2 +- pkg/config/static/static_config_test.go | 10 ++++++++++ 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/pkg/config/static/static_config.go b/pkg/config/static/static_config.go index b691d9c67..0ad5d1109 100644 --- a/pkg/config/static/static_config.go +++ b/pkg/config/static/static_config.go @@ -58,7 +58,7 @@ const ( ) // Allowed characters in URL following RFC 3986 (https://www.rfc-editor.org/rfc/rfc3986#section-2) -var validBasePath = regexp.MustCompile(`^/[a-zA-Z0-9/_.-]*$`) +var validBasePath = regexp.MustCompile(`^/[a-zA-Z0-9/_.:~-]*$`) // Configuration is the static configuration. type Configuration struct { diff --git a/pkg/config/static/static_config_test.go b/pkg/config/static/static_config_test.go index 3fbef168e..5289e4679 100644 --- a/pkg/config/static/static_config_test.go +++ b/pkg/config/static/static_config_test.go @@ -349,6 +349,16 @@ func TestValidateConfiguration_BasePath(t *testing.T) { basePath: "/api%2Ftoto", expectErr: true, }, + { + desc: "valid path with colons", + basePath: "/k8s/clusters/c-abcd0/api/v1/namespaces/my-ns/services/http:traefik:8080/proxy", + expectErr: false, + }, + { + desc: "valid path with tilde", + basePath: "/~user/dashboard", + expectErr: false, + }, } for _, test := range tests {