fix: 独立审计日志并补齐令牌身份与失败记录

This commit is contained in:
Nixevol
2026-09-30 16:22:49 +08:00
parent eb4e2db918
commit b7c8b6ffd6
12 changed files with 641 additions and 124 deletions
+7
View File
@@ -41,6 +41,8 @@ type Deps struct {
Tokens auth.APITokens
Locks auth.LoginLocks
Logger *slog.Logger
// AuditLogger 独立审计日志,始终 Info,不受 log.level 影响;nil 时使用独立 JSON Info 处理器。
AuditLogger *slog.Logger
// TrustedProxies 受信任代理网段。
TrustedProxies []*net.IPNet
@@ -74,6 +76,7 @@ type Handler struct {
tokens auth.APITokens
locks auth.LoginLocks
log *slog.Logger
auditLog *slog.Logger
trusted []*net.IPNet
ttl time.Duration
forceSec bool
@@ -98,6 +101,9 @@ func New(d Deps) *Handler {
if d.Logger == nil {
d.Logger = slog.Default()
}
if d.AuditLogger == nil {
d.AuditLogger = defaultAuditLogger()
}
if d.Locks == nil {
d.Locks = NewMemoryLoginLocks()
}
@@ -119,6 +125,7 @@ func New(d Deps) *Handler {
tokens: d.Tokens,
locks: d.Locks,
log: d.Logger,
auditLog: d.AuditLogger,
trusted: d.TrustedProxies,
ttl: ttl,
forceSec: d.SecureCookies,