stefanprodan / WebApiThrottle

ASP.NET Web API rate limiter for IIS and Owin hosting
MIT License
1.28k stars 274 forks source link

Only apply rules if they exist #138

Open giladsu opened 4 years ago

giladsu commented 4 years ago

Added to the null check of rules to see if any rules exist.

This helps since in the case that a policy is stored in config with null rules, since when when it is deserialized, rules will not be null in memory due to instantiation as empty in the default ctor.

Therefore, IP/ClientKey/Endpoint will be checked even if there are no rules. This could be problematic since if GetRequestIdentity is overridden and IP isn't set explicitly (since from a policy perspective there are no rules or whitelists connected to IP) an exception will be thrown while parsing it.

Finally, this is a small perf boost, since if there are no rules, none of the rule related code is run.