objectMatcher returns a SecretMatcher for matching against objects
()
| 93 | |
| 94 | // objectMatcher returns a SecretMatcher for matching against objects |
| 95 | func (u *UserPattern) objectMatcher() SecretMatcher { |
| 96 | return SecretMatcher{"(object) @matches", func(n *Node) *Secret { |
| 97 | pairs := n.NamedChildren() |
| 98 | |
| 99 | matched := 0 |
| 100 | |
| 101 | for _, pat := range u.Object { |
| 102 | matcher := pat.pairMatcher() |
| 103 | |
| 104 | for _, pair := range pairs { |
| 105 | if matcher.Fn(pair) != nil { |
| 106 | matched++ |
| 107 | break |
| 108 | } |
| 109 | } |
| 110 | } |
| 111 | |
| 112 | if matched != len(u.Object) { |
| 113 | return nil |
| 114 | } |
| 115 | |
| 116 | secret := &Secret{ |
| 117 | Kind: u.Name, |
| 118 | Data: n.AsObject().AsMap(), |
| 119 | Severity: u.Severity, |
| 120 | } |
| 121 | |
| 122 | return secret |
| 123 | }} |
| 124 | } |
| 125 | |
| 126 | // pairMatcher returns a SecretMatcher for matching against key/value pairs |
| 127 | func (u *UserPattern) pairMatcher() SecretMatcher { |
no test coverage detected