mask/matchers.go (51 lines of code) (raw):

package mask import ( "bytes" "regexp" ) var parameterMatches = []string{ `token$`, `password`, `secret`, `key$`, `signature`, `^authorization$`, `^certificate$`, `^encrypted_key$`, `^hook$`, `^import_url$`, `^elasticsearch_url$`, `^otp_attempt$`, `^sentry_dsn$`, `^trace$`, `^variables$`, `^content$`, `^body$`, `^description$`, `^note$`, `^text$`, `^title$`, `^jwt$`, `^redirect$`, } var headerMatches = []string{ `token$`, `password`, `secret`, `key$`, `signature`, `^authorization$`, } // parameterMatcher is precompiled for performance reasons. Keep in mind that // `IsSensitiveParam`, `IsSensitiveHeader` and `URL` may be used in tight loops // which may be sensitive to performance degradations. var parameterMatcher = compileRegexpFromStrings(parameterMatches) // headerMatcher is precompiled for performance reasons, same as `parameterMatcher`. var headerMatcher = compileRegexpFromStrings(headerMatches) func compileRegexpFromStrings(paramNames []string) *regexp.Regexp { var buffer bytes.Buffer buffer.WriteString("(?i)") for i, v := range paramNames { if i > 0 { buffer.WriteString("|") } buffer.WriteString(v) } return regexp.MustCompile(buffer.String()) }