Skip to content

Commit

Permalink
refactor(recovery): extract Authorization header masking into maskAut…
Browse files Browse the repository at this point in the history
…horization func
  • Loading branch information
zeek0x committed Jan 19, 2025
1 parent 3f818c3 commit e33e0c7
Showing 1 changed file with 11 additions and 6 deletions.
17 changes: 11 additions & 6 deletions recovery.go
Original file line number Diff line number Diff line change
Expand Up @@ -73,12 +73,7 @@ func CustomRecoveryWithWriter(out io.Writer, handle RecoveryFunc) HandlerFunc {
stack := stack(3)
httpRequest, _ := httputil.DumpRequest(c.Request, false)
headers := strings.Split(string(httpRequest), "\r\n")
for idx, header := range headers {
current := strings.Split(header, ":")
if current[0] == "Authorization" {
headers[idx] = current[0] + ": *"
}
}
maskAuthorization(&headers)
headersToStr := strings.Join(headers, "\r\n")
if brokenPipe {
logger.Printf("%s\n%s%s", err, headersToStr, reset)
Expand Down Expand Up @@ -134,6 +129,16 @@ func stack(skip int) []byte {
return buf.Bytes()
}

// maskAuthorization replaces any "Authorization: <token>" header with "Authorization: *", hiding sensitive credentials.
func maskAuthorization(headers *[]string) {
for idx, header := range *headers {
current := strings.Split(header, ":")
if current[0] == "Authorization" {
(*headers)[idx] = current[0] + ": *"
}
}
}

// source returns a space-trimmed slice of the n'th line.
func source(lines [][]byte, n int) []byte {
n-- // in stack trace, lines are 1-indexed but our array is 0-indexed
Expand Down

0 comments on commit e33e0c7

Please sign in to comment.