spring-cloud/spring-cloud-gateway

Make RedisRateLimiter extensible?

开放

#393 创建于 2018年6月26日

 (2 条评论) (1 个反应) (0 位负责人)Java (3,204 个派生)batch import
enhancementhelp wanted

仓库指标

星标
 (4,284 个星标)
PR 合并指标
 (PR 指标待抓取)

描述

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!

贡献者指南