server: Go 服务器(REST+WSS 网关+JWT+Argon2+配对+素材直链+任务状态机);修复并发下线 send-on-closed-channel、下发查询 SQL 优先级、配对码原子占用、上传体积上限、JWT 默认密钥告警

This commit is contained in:
Qiufeng
2026-08-20 20:38:21 +08:00
parent bf25d8beac
commit cc8845dcec
44 changed files with 4995 additions and 0 deletions
+38
View File
@@ -0,0 +1,38 @@
package middleware
import (
"encoding/json"
"net/http"
"github.com/gin-gonic/gin"
"gorm.io/gorm"
"everypublish/server/internal/api/response"
"everypublish/server/internal/models"
)
// Audit 审计埋点:处理器调用 response.Audit(c, action, resource, detail) 声明,
// 本中间件在请求成功(2xx)后落库。
func Audit(db *gorm.DB) gin.HandlerFunc {
return func(c *gin.Context) {
c.Next()
metaRaw, exists := c.Get("audit")
if !exists {
return
}
meta, ok := metaRaw.(response.AuditMeta)
if !ok || c.Writer.Status() >= http.StatusBadRequest {
return
}
detail, _ := json.Marshal(meta.Detail)
log := models.AuditLog{
WorkspaceID: c.GetUint64("wsid"),
UserID: c.GetUint64("uid"),
Action: meta.Action,
Resource: meta.Resource,
Detail: string(detail),
IP: c.ClientIP(),
}
_ = db.Create(&log).Error
}
}