Skip to content

Commit

Permalink
Merge pull request #752 from wallyqs/redacted-pass-regex-fix
Browse files Browse the repository at this point in the history
Fix regex matching group for removing password
  • Loading branch information
kozlovic authored Sep 16, 2018
2 parents 64e69a1 + 7337eb6 commit a065d13
Show file tree
Hide file tree
Showing 2 changed files with 7 additions and 4 deletions.
4 changes: 2 additions & 2 deletions server/client.go
Original file line number Diff line number Diff line change
Expand Up @@ -706,7 +706,7 @@ func (c *client) processErr(errStr string) {
}

// Password pattern matcher.
var passPat = regexp.MustCompile(`"?\s*pass\S*\s*"?\s*[:=]\s*("?[^\s,}$]*)`)
var passPat = regexp.MustCompile(`"?\s*pass\S*?"?[:=]\s*"?(([^"])*)`)

// This will remove any notion of passwords from trace messages
// for logging.
Expand All @@ -721,7 +721,7 @@ func removePassFromTrace(arg []byte) []byte {
}

for _, match := range m {
if len(match) != 2 {
if len(match) != 3 {
continue
}
arg = bytes.Replace(arg, match[1], []byte("[REDACTED]"), 1)
Expand Down
7 changes: 5 additions & 2 deletions server/log_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -228,7 +228,10 @@ func TestRemovePassFromTrace(t *testing.T) {
check(removePassFromTrace([]byte("CONNECT {\"user\":\"derek\",\"pass\":\"s3cr3t\"}\r\n")))
check(removePassFromTrace([]byte("CONNECT {\"user\":\"derek\",\"pass\": \"s3cr3t\"}\r\n")))
check(removePassFromTrace([]byte("CONNECT {\"user\":\"derek\",\"pass\": \"s3cr3t\" }\r\n")))
check(removePassFromTrace([]byte("CONNECT {\"password\":\"s3cr3t\",}\r\n")))
check(removePassFromTrace([]byte("CONNECT {pass:s3cr3t\r\n")))
check(removePassFromTrace([]byte("CONNECT {\"pass\":\"s3cr3t\",}\r\n")))
check(removePassFromTrace([]byte("CONNECT {pass:s3cr3t , password = s3cr3t}")))
check(removePassFromTrace([]byte("CONNECT {\"echo\":true,\"verbose\":false,\"pedantic\":false,\"user\":\"foo\",\"pass\":\"s3cr3t\",\"tls_required\":false,\"name\":\"APM7JU94z77YzP6WTBEiuw\"}\r\n")))
check(removePassFromTrace([]byte("CONNECT {pass:s3cr3t\r\n")))
check(removePassFromTrace([]byte("CONNECT {\"password\":\"s3cr3t\",}\r\n")))
check(removePassFromTrace([]byte("CONNECT {\"echo\":true,\"verbose\":false,\"pedantic\":false,\"user\":\"foo\",\"password\":\"s3cr3t\",\"tls_required\":false,\"name\":\"APM7JU94z77YzP6WTBEiuw\"}\r\n")))
}

0 comments on commit a065d13

Please sign in to comment.