diff --git a/cmd/dashboard/controller/jwt.go b/cmd/dashboard/controller/jwt.go index 8bcfe48..17702c2 100644 --- a/cmd/dashboard/controller/jwt.go +++ b/cmd/dashboard/controller/jwt.go @@ -75,6 +75,7 @@ func identityHandler() func(c *gin.Context) any { if tokenIP != currentIP { // IP地址不匹配,token无效 + c.Set(model.CtxKeyIsIPMismatch, true) return nil } @@ -203,8 +204,9 @@ func fallbackAuthMiddleware(mw *jwt.GinJWTMiddleware) func(c *gin.Context) { model.UnblockIP(singleton.DB, realIP, model.BlockIDToken) c.Set(mw.IdentityKey, identity) } else { - if err := model.BlockIP(singleton.DB, realIP, model.WAFBlockReasonTypeBruteForceToken, model.BlockIDToken); err != nil { - waf.ShowBlockPage(c, err) + isIpMismatch := c.GetBool(model.CtxKeyIsIPMismatch) + if !isIpMismatch { + waf.ShowBlockPage(c, model.BlockIP(singleton.DB, realIP, model.WAFBlockReasonTypeBruteForceToken, model.BlockIDToken)) return } } diff --git a/model/common.go b/model/common.go index 12c3052..321f815 100644 --- a/model/common.go +++ b/model/common.go @@ -15,6 +15,7 @@ import ( const ( CtxKeyAuthorizedUser = "ckau" CtxKeyRealIPStr = "ckri" + CtxKeyIsIPMismatch = "ckipm" ) const (