// Package middleware ... // // Description : middleware ... // // Author : go_developer@163.com<白茶清欢> // // Date : 2022-06-25 23:24 package middleware import ( "git.zhangdeman.cn/zhangdeman/gin/define" "git.zhangdeman.cn/zhangdeman/gin/response" networkUtil "git.zhangdeman.cn/zhangdeman/network/util" "github.com/gin-gonic/gin" ) // ValidateBlackIPMiddleware 验证黑名单IP的中间件 // // Author : go_developer@163.com<白茶清欢> // // Date : 23:24 2022/6/25 func ValidateBlackIPMiddleware(code interface{}, httpCode int, validateFunc define.IsBlackIP) gin.HandlerFunc { return func(ctx *gin.Context) { if nil == validateFunc { // 不验证黑名单 ctx.Next() return } remoteIp := networkUtil.IP.GetRemoteIP(ctx.Request) if validateFunc(ctx, remoteIp) { // 命中黑名单 response.Send(ctx, code, httpCode, map[string]any{ "remote_ip": remoteIp, }, nil) ctx.Abort() return } ctx.Next() } } // ValidateWhiteIPMiddleware 是否白名单IP // // Author : go_developer@163.com<白茶清欢> // // Date : 23:33 2022/6/25 func ValidateWhiteIPMiddleware(code interface{}, httpCode int, validateFunc define.IsWhiteIP) gin.HandlerFunc { return func(ctx *gin.Context) { if nil == validateFunc { // 不验证白名单 ctx.Next() return } remoteIp := networkUtil.IP.GetRemoteIP(ctx.Request) if !validateFunc(ctx, remoteIp) { // 非名单 response.Send(ctx, code, httpCode, map[string]any{ "remote_ip": remoteIp, }, nil) ctx.Abort() return } ctx.Next() } }