diff --git a/internal/mode/static/nginx/config/validation/http_njs_match.go b/internal/mode/static/nginx/config/validation/http_njs_match.go index d207766c20..dc224c38e7 100644 --- a/internal/mode/static/nginx/config/validation/http_njs_match.go +++ b/internal/mode/static/nginx/config/validation/http_njs_match.go @@ -46,6 +46,10 @@ func (HTTPNJSMatchValidator) ValidatePathInMatch(path string) error { } func (HTTPNJSMatchValidator) ValidateHeaderNameInMatch(name string) error { + if err := k8svalidation.IsHTTPHeaderName(name); err != nil { + return errors.New(err[0]) + } + return validateNJSHeaderPart(name) } diff --git a/internal/mode/static/nginx/config/validation/http_njs_match_test.go b/internal/mode/static/nginx/config/validation/http_njs_match_test.go index 06de3709f2..0fd99ae5b9 100644 --- a/internal/mode/static/nginx/config/validation/http_njs_match_test.go +++ b/internal/mode/static/nginx/config/validation/http_njs_match_test.go @@ -34,12 +34,18 @@ func TestValidateHeaderNameInMatch(t *testing.T) { t, validator.ValidateHeaderNameInMatch, "header", + "version", + "version-2", ) testInvalidValuesForSimpleValidator( t, validator.ValidateHeaderNameInMatch, ":", "", + "version%!", + "version_2", + "hello$world", + " ", ) } @@ -50,12 +56,16 @@ func TestValidateHeaderValueInMatch(t *testing.T) { t, validator.ValidateHeaderValueInMatch, "value", + "version%!", + "version-2", ) testInvalidValuesForSimpleValidator( t, validator.ValidateHeaderValueInMatch, ":", "", + "hello$world", + " ", ) }