From 251129d09b471b6fece88c30180f497ca9595aa7 Mon Sep 17 00:00:00 2001 From: Jim Bugwadia Date: Sun, 29 Nov 2020 00:35:33 -0800 Subject: [PATCH] fix wildcard match --- pkg/engine/variables/operator/equal.go | 2 +- pkg/engine/variables/operator/in.go | 5 +++-- pkg/engine/variables/operator/notequal.go | 3 ++- 3 files changed, 6 insertions(+), 4 deletions(-) diff --git a/pkg/engine/variables/operator/equal.go b/pkg/engine/variables/operator/equal.go index 64f76742d406..3a26eb548bbb 100644 --- a/pkg/engine/variables/operator/equal.go +++ b/pkg/engine/variables/operator/equal.go @@ -83,7 +83,7 @@ func (eh EqualHandler) validateValueWithMapPattern(key map[string]interface{}, v func (eh EqualHandler) validateValueWithStringPattern(key string, value interface{}) bool { if val, ok := value.(string); ok { - return wildcard.Match(key, val) + return wildcard.Match(val, key) } eh.log.Info("Expected type string", "value", value, "type", fmt.Sprintf("%T", value)) diff --git a/pkg/engine/variables/operator/in.go b/pkg/engine/variables/operator/in.go index 029991eaa459..965f7941d03b 100644 --- a/pkg/engine/variables/operator/in.go +++ b/pkg/engine/variables/operator/in.go @@ -3,6 +3,7 @@ package operator import ( "encoding/json" "fmt" + "github.com/minio/minio/pkg/wildcard" "github.com/go-logr/logr" @@ -76,14 +77,14 @@ func keyExistsInArray(key string, value interface{}, log logr.Logger) (invalidTy case string: - if wildcard.Match(key, valuesAvailable) { + if wildcard.Match(valuesAvailable, key) { keyExists = true return } var arr []string if err := json.Unmarshal([]byte(valuesAvailable), &arr); err != nil { - log.Error(err, "failed to unmarshal to string slice", "value", value) + log.Error(err, "failed to unmarshal value to JSON string array", "key", key, "value", value) invalidType = true return } diff --git a/pkg/engine/variables/operator/notequal.go b/pkg/engine/variables/operator/notequal.go index acb4f2251ca2..13e74fa151b4 100644 --- a/pkg/engine/variables/operator/notequal.go +++ b/pkg/engine/variables/operator/notequal.go @@ -82,8 +82,9 @@ func (neh NotEqualHandler) validateValueWithMapPattern(key map[string]interface{ func (neh NotEqualHandler) validateValueWithStringPattern(key string, value interface{}) bool { if val, ok := value.(string); ok { - return !wildcard.Match(key, val) + return !wildcard.Match(val, key) } + neh.log.Info("Expected type string", "value", value, "type", fmt.Sprintf("%T", value)) return false }