package middleware import ( "context" "server/common" "github.com/gin-gonic/gin" ) // TenantMiddleware 解析租户ID并绑定到请求上下文 func TenantMiddleware() gin.HandlerFunc { return func(c *gin.Context) { tenantID := common.TenantIDFromHeader(c.GetHeader) ctx := c.Request.Context() if tenantID != "" { ctx = context.WithValue(ctx, common.ContextTenantIDKey, tenantID) } cleanup := common.BindRequestContext(ctx) defer cleanup() if ctx != c.Request.Context() { c.Request = c.Request.WithContext(ctx) } c.Next() } }