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 {