add limit
This commit is contained in:
@@ -344,6 +344,29 @@ func NewContainer() *Container {
|
||||
middleware.NewResponseTimeMiddleware,
|
||||
middleware.NewCORSMiddleware,
|
||||
middleware.NewRateLimitMiddleware,
|
||||
// 每日限流中间件
|
||||
func(cfg *config.Config, redis *redis.Client, response interfaces.ResponseBuilder, logger *zap.Logger) *middleware.DailyRateLimitMiddleware {
|
||||
limitConfig := middleware.DailyRateLimitConfig{
|
||||
MaxRequestsPerDay: cfg.DailyRateLimit.MaxRequestsPerDay,
|
||||
MaxRequestsPerIP: cfg.DailyRateLimit.MaxRequestsPerIP,
|
||||
KeyPrefix: cfg.DailyRateLimit.KeyPrefix,
|
||||
TTL: cfg.DailyRateLimit.TTL,
|
||||
MaxConcurrent: cfg.DailyRateLimit.MaxConcurrent,
|
||||
// 安全配置
|
||||
EnableIPWhitelist: cfg.DailyRateLimit.EnableIPWhitelist,
|
||||
IPWhitelist: cfg.DailyRateLimit.IPWhitelist,
|
||||
EnableIPBlacklist: cfg.DailyRateLimit.EnableIPBlacklist,
|
||||
IPBlacklist: cfg.DailyRateLimit.IPBlacklist,
|
||||
EnableUserAgent: cfg.DailyRateLimit.EnableUserAgent,
|
||||
BlockedUserAgents: cfg.DailyRateLimit.BlockedUserAgents,
|
||||
EnableReferer: cfg.DailyRateLimit.EnableReferer,
|
||||
AllowedReferers: cfg.DailyRateLimit.AllowedReferers,
|
||||
EnableGeoBlock: cfg.DailyRateLimit.EnableGeoBlock,
|
||||
BlockedCountries: cfg.DailyRateLimit.BlockedCountries,
|
||||
EnableProxyCheck: cfg.DailyRateLimit.EnableProxyCheck,
|
||||
}
|
||||
return middleware.NewDailyRateLimitMiddleware(cfg, redis, response, logger, limitConfig)
|
||||
},
|
||||
NewRequestLoggerMiddlewareWrapper,
|
||||
middleware.NewJWTAuthMiddleware,
|
||||
middleware.NewOptionalAuthMiddleware,
|
||||
@@ -701,6 +724,7 @@ func RegisterMiddlewares(
|
||||
responseTime *middleware.ResponseTimeMiddleware,
|
||||
cors *middleware.CORSMiddleware,
|
||||
rateLimit *middleware.RateLimitMiddleware,
|
||||
dailyRateLimit *middleware.DailyRateLimitMiddleware,
|
||||
requestLogger *middleware.RequestLoggerMiddleware,
|
||||
traceIDMiddleware *middleware.TraceIDMiddleware,
|
||||
errorTrackingMiddleware *middleware.ErrorTrackingMiddleware,
|
||||
@@ -714,6 +738,7 @@ func RegisterMiddlewares(
|
||||
router.RegisterMiddleware(responseTime)
|
||||
router.RegisterMiddleware(cors)
|
||||
router.RegisterMiddleware(rateLimit)
|
||||
router.RegisterMiddleware(dailyRateLimit)
|
||||
router.RegisterMiddleware(requestLogger)
|
||||
router.RegisterMiddleware(traceIDMiddleware)
|
||||
router.RegisterMiddleware(errorTrackingMiddleware)
|
||||
|
||||
Reference in New Issue
Block a user