spring-cloud/spring-cloud-gateway

Make RedisRateLimiter extensible?

Offen

#393 geöffnet am 26.06.2018

 (2 Kommentare) (1 Reaktion) (0 zugewiesene Personen)Java (3.204 Forks)batch import
enhancementhelp wanted

Repository-Metriken

Stars
 (4.284 Sterne)
PR-Merge-Metriken
 (PR-Metriken ausstehend)

Beschreibung

Hey guys!

In order to be able to rate limit per user API key (versus basing the limit on the route) I had to extend RedisRateLimiter to make isAllowed(String routeId, String apiKey) calculate the limits based up on the route and the apiKey. Please see the full thing here: https://stackoverflow.com/questions/50988095/rate-limiting-based-on-user-plan-in-spring-cloud-gateway

As you see it is somewhat hackish there because there's no good way to extend RedisRateLimiter - see I had to decorate it, copy some private/default scoped methods over as well as hack the @Primary annotation so it gets into the bean factory well.

Do you think RedisRateLimiter would be re-architected to be easier to extend? Thanks!

Contributor Guide