diff --git a/config/config.go b/config/config.go index d28e616..c3f768f 100644 --- a/config/config.go +++ b/config/config.go @@ -57,6 +57,7 @@ type SectionLog struct { AccessLevel string `yaml:"access_level"` ErrorLog string `yaml:"error_log"` ErrorLevel string `yaml:"error_level"` + HideToken bool `yaml:"hide_token"` } // SectionStat is sub seciont of config. @@ -115,6 +116,7 @@ func BuildDefaultPushConf() ConfYaml { conf.Log.AccessLevel = "debug" conf.Log.ErrorLog = "stderr" conf.Log.ErrorLevel = "error" + conf.Log.HideToken = true conf.Stat.Engine = "memory" conf.Stat.Redis.Addr = "localhost:6379" diff --git a/config/config.yml b/config/config.yml index 5fb8558..0d4fe6a 100644 --- a/config/config.yml +++ b/config/config.yml @@ -30,6 +30,7 @@ log: access_level: "debug" error_log: "stderr" error_level: "error" + hide_token: true stat: engine: "memory" diff --git a/gorush/log.go b/gorush/log.go index e22a76a..6f6601a 100644 --- a/gorush/log.go +++ b/gorush/log.go @@ -181,16 +181,20 @@ func typeForPlatForm(platform int) string { } } -func hideToken(token string, starLen int) string { +func hideToken(token string, markLen int) string { if len(token) == 0 { return "" } - start := token[len(token)-starLen:] - end := token[0:starLen] + if len(token) < markLen*2 { + return strings.Repeat("*", len(token)) + } - result := strings.Replace(token, start, strings.Repeat("*", starLen), -1) - result = strings.Replace(result, end, strings.Repeat("*", starLen), -1) + start := token[len(token)-markLen:] + end := token[0:markLen] + + result := strings.Replace(token, start, strings.Repeat("*", markLen), -1) + result = strings.Replace(result, end, strings.Repeat("*", markLen), -1) return result } @@ -207,6 +211,10 @@ func LogPush(status, token string, req PushNotification, errPush error) { errMsg = errPush.Error() } + if PushConf.Log.HideToken == true { + token = hideToken(token, 10) + } + log := &LogPushEntry{ Type: status, Platform: plat, diff --git a/gorush/log_test.go b/gorush/log_test.go index 8542d25..e637231 100644 --- a/gorush/log_test.go +++ b/gorush/log_test.go @@ -92,4 +92,5 @@ func TestPlatFormColor(t *testing.T) { func TestHideToken(t *testing.T) { assert.Equal(t, "", hideToken("", 2)) assert.Equal(t, "**345678**", hideToken("1234567890", 2)) + assert.Equal(t, "*****", hideToken("12345", 10)) }