feat: 密钥管理
This commit is contained in:
@@ -34,6 +34,11 @@ type SystemSettings struct {
|
||||
|
||||
// 请求日志配置(数据库日志)
|
||||
RequestLogRetentionDays int `json:"request_log_retention_days" default:"30" name:"日志保留天数" category:"日志配置" desc:"请求日志在数据库中的保留天数" validate:"min=1"`
|
||||
|
||||
// 密钥验证配置
|
||||
KeyValidationIntervalMinutes int `json:"key_validation_interval_minutes" default:"60" name:"定时验证周期" category:"密钥验证" desc:"后台定时验证密钥的默认周期(分钟)" validate:"min=5"`
|
||||
KeyValidationConcurrency int `json:"key_validation_concurrency" default:"10" name:"验证并发数" category:"密钥验证" desc:"执行密钥验证时的并发 goroutine 数量" validate:"min=1,max=100"`
|
||||
KeyValidationTaskTimeoutMinutes int `json:"key_validation_task_timeout_minutes" default:"60" name:"手动验证超时" category:"密钥验证" desc:"手动触发的全量验证任务的超时时间(分钟)" validate:"min=10"`
|
||||
}
|
||||
|
||||
// GenerateSettingsMetadata 使用反射从 SystemSettings 结构体动态生成元数据
|
||||
@@ -105,8 +110,9 @@ func DefaultSystemSettings() SystemSettings {
|
||||
|
||||
// SystemSettingsManager 管理系统配置
|
||||
type SystemSettingsManager struct {
|
||||
settings SystemSettings
|
||||
mu sync.RWMutex
|
||||
settings SystemSettings
|
||||
settingsCache map[string]string // Cache for raw string values
|
||||
mu sync.RWMutex
|
||||
}
|
||||
|
||||
var globalSystemSettings *SystemSettingsManager
|
||||
@@ -169,6 +175,8 @@ func (sm *SystemSettingsManager) LoadFromDatabase() error {
|
||||
sm.mu.Lock()
|
||||
defer sm.mu.Unlock()
|
||||
|
||||
sm.settingsCache = settingsMap
|
||||
|
||||
// 使用默认值,然后用数据库中的值覆盖
|
||||
sm.settings = DefaultSystemSettings()
|
||||
sm.mapToStruct(settingsMap, &sm.settings)
|
||||
@@ -334,6 +342,8 @@ func (sm *SystemSettingsManager) DisplayCurrentSettings() {
|
||||
logrus.Infof(" Request timeouts: request=%ds, response=%ds, idle_conn=%ds",
|
||||
sm.settings.RequestTimeout, sm.settings.ResponseTimeout, sm.settings.IdleConnTimeout)
|
||||
logrus.Infof(" Request log retention: %d days", sm.settings.RequestLogRetentionDays)
|
||||
logrus.Infof(" Key validation: interval=%dmin, concurrency=%d, task_timeout=%dmin",
|
||||
sm.settings.KeyValidationIntervalMinutes, sm.settings.KeyValidationConcurrency, sm.settings.KeyValidationTaskTimeoutMinutes)
|
||||
}
|
||||
|
||||
// 辅助方法
|
||||
|
Reference in New Issue
Block a user