Example #1
0
        public virtual void ProcessRequest(IRequest request, IResponse response, object obj)
        {
            var limits = LimitProvider.GetLimits(request);

            if (limits == null)
            {
                // No limits for request, continue
                log.Warn($"No limits found for request {request.AbsoluteUri}");
                return;
            }

            var rateLimitResult = GetLimitResult(request, limits);

            ProcessResult(response, rateLimitResult);
        }
Example #2
0
        private string GetSha1()
        {
            var scriptFromConfig = LimitProvider.GetRateLimitScriptId();

            if (!string.IsNullOrWhiteSpace(scriptFromConfig))
            {
                log.Debug($"Got Lua script sha1 {scriptFromConfig} from config");
                return(scriptFromConfig);
            }

            if (string.IsNullOrEmpty(scriptSha1))
            {
                log.Info("Registering Lua rate limiting script");
                scriptSha1 = LuaScriptHelpers.RegisterLuaScript(redisClientsManager);
            }
            return(scriptSha1);
        }