From 0b6ae0d1197303a7afc8397937ec9c5d6243f187 Mon Sep 17 00:00:00 2001 From: Alexander Zobnin Date: Wed, 10 May 2023 13:30:50 +0300 Subject: [PATCH] Settings: Do not hide sensitive values if it's empty (#68088) * Settings: Do not hide sensitive values if it's empty * Fix implementation * Add tests for RedactedValue function --- pkg/setting/setting.go | 4 ++++ pkg/setting/setting_test.go | 34 ++++++++++++++++++++++++++++++++++ 2 files changed, 38 insertions(+) diff --git a/pkg/setting/setting.go b/pkg/setting/setting.go index 4865681deb5..7a3ac78fb8a 100644 --- a/pkg/setting/setting.go +++ b/pkg/setting/setting.go @@ -561,6 +561,10 @@ func ToAbsUrl(relativeUrl string) string { } func RedactedValue(key, value string) string { + if value == "" { + return "" + } + uppercased := strings.ToUpper(key) // Sensitive information: password, secrets etc for _, pattern := range []string{ diff --git a/pkg/setting/setting_test.go b/pkg/setting/setting_test.go index 9ab2dd9cc98..ac93ceff817 100644 --- a/pkg/setting/setting_test.go +++ b/pkg/setting/setting_test.go @@ -782,3 +782,37 @@ func TestAlertingEnabled(t *testing.T) { }) } } + +func TestRedactedValue(t *testing.T) { + testCases := []struct { + desc string + key string + value string + expected string + }{ + { + desc: "non-sensitive key", + key: "admin_user", + value: "admin", + expected: "admin", + }, + { + desc: "sensitive key with non-empty value", + key: "private_key_path", + value: "/path/to/key", + expected: RedactedPassword, + }, + { + desc: "sensitive key with empty value", + key: "private_key_path", + value: "", + expected: "", + }, + } + + for _, tc := range testCases { + t.Run(tc.desc, func(t *testing.T) { + require.Equal(t, tc.expected, RedactedValue(tc.key, tc.value)) + }) + } +}