GitHub - ssrathi/go-scrub: A scrubbing utility to hide sensitive fields from a s...
source link: https://github.com/ssrathi/go-scrub
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
go-scrub
A scrubbing utility in Golang to hide sensitive fields from a struct prior to logging.
Since the scrubbing utility function needs to work on any Golang struct where its fields and members are known only at runtime, we can leverage "reflect", a powerful package from the Golang standard library, to scrub sensitive fields at any level of a deeply nested structure recursively.
Installation
go install github.com/ssrathi/go-scrub@latest
Usage
import "github.com/ssrathi/go-scrub" // Have a struct with some sensitive fields. type testScrub struct { Username string Password string Codes []string } // Create a struct with some sensitive data. T := testScrub{ Username: "administrator", Password: "my_secret_passphrase", Codes: []string{"pass1", "pass2", "pass3"}, } // Create a set of field names to scrub (default is 'password'). fieldsToScrub := map[string]bool{ "password": true, "codes": true, } // Call the util API to get a JSON formatted string with scrubbed field values. out := scrub.Scrub(&T, fieldsToScrub) // Log the scrubbed string without worrying about prying eyes! log.Println(out) OUTPUT: {"Username":"administrator","Password":"********","Codes":["********","********","********"]}
Contributing
Contributions are most welcome! Please create a new issue and link your PR to it.
Recommend
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK