22 lines
774 B
Go
22 lines
774 B
Go
|
|
package logger
|
||
|
|
|
||
|
|
import (
|
||
|
|
"bytes"
|
||
|
|
"errors"
|
||
|
|
"log/slog"
|
||
|
|
"strings"
|
||
|
|
"testing"
|
||
|
|
)
|
||
|
|
|
||
|
|
func TestSecretsRedactedInMessagesErrorsAttributesAndGroups(t *testing.T) {
|
||
|
|
RegisterSecrets("SENTINEL_PRIVATE_KEY")
|
||
|
|
var buffer bytes.Buffer
|
||
|
|
log := slog.New(redactingHandler{slog.NewJSONHandler(&buffer, nil)})
|
||
|
|
log.With("token", "BOUND_SECRET").Info("provider echoed SENTINEL_PRIVATE_KEY", "error", errors.New("Authorization: Bearer UNKNOWN_SECRET"), "payload", map[string]string{"config": "MAP_SECRET"}, "group", slog.GroupValue(slog.String("apiKey", "GROUP_SECRET")))
|
||
|
|
for _, secret := range []string{"SENTINEL_PRIVATE_KEY", "BOUND_SECRET", "UNKNOWN_SECRET", "MAP_SECRET", "GROUP_SECRET"} {
|
||
|
|
if strings.Contains(buffer.String(), secret) {
|
||
|
|
t.Fatalf("leaked secret %s", secret)
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|