github.com/Axway/agent-sdk@v1.1.101/pkg/util/log/util_test.go (about) 1 package log 2 3 import ( 4 "fmt" 5 "testing" 6 7 "github.com/stretchr/testify/assert" 8 ) 9 10 type Request struct { 11 User UserInfo 12 UserAgent string 13 Host string 14 TLS string `json:"Tls"` 15 } 16 17 type UserInfo struct { 18 ClientName string 19 ClientCode int 20 ClientPass string 21 } 22 23 func TestObscureComplexStrings(t *testing.T) { 24 25 user := UserInfo{ClientName: "John Doe", ClientCode: 32156, ClientPass: "GHSGD&#&BGL˜X"} 26 request := Request{ 27 User: user, 28 UserAgent: "Version 17.2.0.12 - Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/535.8 (KHTML, like Gecko) Beamrise/17.2.0.12 Chrome/17.0.939.0 Safari/535.8", 29 Host: "http://example.com", 30 TLS: "-----BEGIN-----ABCDEFGHIJKLMNOPQRSTUVWXYZ-----END-----", 31 } 32 33 fmt.Printf("%s", ObscureArguments([]string{"ClientPass", "Tls"}, request)) 34 35 expected := "[{\"User\":{\"ClientName\":\"John Doe\",\"ClientCode\":32156,\"ClientPass\": \"[redacted]\"},\"UserAgent\":\"Version 17.2.0.12 - Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/535.8 (KHTML, like Gecko) Beamrise/17.2.0.12 Chrome/17.0.939.0 Safari/535.8\",\"Host\":\"http://example.com\",\"Tls\": \"[redacted]\"}]" 36 assert.Equal(t, expected, fmt.Sprintf("%s", ObscureArguments([]string{"ClientPass", "Tls"}, request))) 37 } 38 39 func TestObscureNumbers(t *testing.T) { 40 41 user := UserInfo{ClientName: "John Doe", ClientCode: 32156, ClientPass: "GHSGD&#&BGL˜X"} 42 request := Request{ 43 User: user, 44 UserAgent: "Version 17.2.0.12 - Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/535.8 (KHTML, like Gecko) Beamrise/17.2.0.12 Chrome/17.0.939.0 Safari/535.8", 45 Host: "http://example.com", 46 TLS: "-----BEGIN-----ABCDEFGHIJKLMNOPQRSTUVWXYZ-----END-----", 47 } 48 49 fmt.Printf("%s", ObscureArguments([]string{"ClientCode"}, request)) 50 51 expected := "[{\"User\":{\"ClientName\":\"John Doe\",\"ClientCode\": \"[redacted]\",\"ClientPass\":\"GHSGD\\u0026#\\u0026BGL˜X\"},\"UserAgent\":\"Version 17.2.0.12 - Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/535.8 (KHTML, like Gecko) Beamrise/17.2.0.12 Chrome/17.0.939.0 Safari/535.8\",\"Host\":\"http://example.com\",\"Tls\":\"-----BEGIN-----ABCDEFGHIJKLMNOPQRSTUVWXYZ-----END-----\"}]" 52 assert.Equal(t, expected, fmt.Sprintf("%s", ObscureArguments([]string{"ClientCode"}, request))) 53 }