package middleware import ( "cicv-data-closedloop/common/config/c_log" "cicv-data-closedloop/common/entity" "github.com/gin-gonic/gin" "net/http" "strings" ) func ValidateHeaders(whiteList []string, webToken string) gin.HandlerFunc { return func(c *gin.Context) { // 校验不在白名单中的路由 if isNotWhite(c.Request.URL.Path, whiteList) { acceptToken := c.GetHeader("Authorization") if acceptToken == "" || acceptToken != webToken { c_log.GlobalLogger.Errorf("请求头 Authorization 校验失败:%v --> %v", acceptToken, webToken) c.JSON(http.StatusOK, entity.HttpResult{Status: false, Code: "1001", Message: "请求头 Authorization 校验失败。"}) c.Abort() return } } c.Next() } } func isNotWhite(path string, whiteList []string) bool { for _, whitePath := range whiteList { if strings.HasPrefix(path, whitePath) { return false } } return true }