From a2d6aff28bad0f2a7a028e6fc7ea67b03c8754a0 Mon Sep 17 00:00:00 2001 From: MaysWind Date: Sun, 7 Jul 2024 21:27:41 +0800 Subject: [PATCH] show warning log when secret_key is not set --- cmd/initializer.go | 4 ++++ pkg/settings/setting.go | 19 +++++++++++++++++++ 2 files changed, 23 insertions(+) diff --git a/cmd/initializer.go b/cmd/initializer.go index 5c259e51..4d9ed63b 100644 --- a/cmd/initializer.go +++ b/cmd/initializer.go @@ -55,6 +55,10 @@ func initializeSystem(c *cli.Context) (*settings.Config, error) { return nil, err } + if config.SecretKeyNoSet { + log.BootWarnf("[initializer.initializeSystem] \"secret_key\" in config file is not set, please change it to keep your user data safe") + } + settings.SetCurrentConfig(config) err = datastore.InitializeDataStore(config) diff --git a/pkg/settings/setting.go b/pkg/settings/setting.go index 1ef684c4..25711802 100644 --- a/pkg/settings/setting.go +++ b/pkg/settings/setting.go @@ -197,6 +197,7 @@ type Config struct { UuidServerId uint8 // Secret + SecretKeyNoSet bool SecretKey string EnableTwoFactor bool TokenExpiredTime uint32 @@ -487,6 +488,7 @@ func loadUuidConfiguration(config *Config, configFile *ini.File, sectionName str } func loadSecurityConfiguration(config *Config, configFile *ini.File, sectionName string) error { + config.SecretKeyNoSet = !getConfigItemIsSet(configFile, sectionName, "secret_key") config.SecretKey = getConfigItemStringValue(configFile, sectionName, "secret_key", defaultSecretKey) config.EnableTwoFactor = getConfigItemBoolValue(configFile, sectionName, "enable_two_factor", true) @@ -645,6 +647,23 @@ func getFinalPath(workingPath, p string) (string, error) { return p, err } +func getConfigItemIsSet(configFile *ini.File, sectionName string, itemName string) bool { + environmentKey := getEnvironmentKey(sectionName, itemName) + environmentValue := os.Getenv(environmentKey) + + if len(environmentValue) > 0 { + return true + } + + section := configFile.Section(sectionName) + + if !section.HasKey(itemName) { + return false + } + + return section.Key(itemName).String() != "" +} + func getConfigItemStringValue(configFile *ini.File, sectionName string, itemName string, defaultValue ...string) string { environmentKey := getEnvironmentKey(sectionName, itemName) environmentValue := os.Getenv(environmentKey)