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  }