RateLimitFilter

@Component
class RateLimitFilter(rateLimitService: RateLimitService, configService: SystemConfigService, rateLimitProperties: RateLimitProperties) : OncePerRequestFilter(source)

Filtro de Rate Limiting usando Token Bucket distribuído.

Aplica limites diferenciados por:

  • Tenant autenticado (conforme plano: FREE/PRO/ENTERPRISE)

  • IP para usuários anônimos (proteção DDoS)

Exceções (whitelist):

  • Webhooks (alta frequência de eventos Meta/Stripe)

  • WebSocket (usa limitador de concorrência separado)

  • Actuator/Swagger (monitoramento e documentação)

Constructors

Link copied to clipboard
constructor(rateLimitService: RateLimitService, configService: SystemConfigService, rateLimitProperties: RateLimitProperties)

Properties

Link copied to clipboard
@Nullable
var environment: Environment
Link copied to clipboard
@Nullable
@get:Nullable
val filterConfig: FilterConfig
Link copied to clipboard
@Nullable
protected var servletContext: ServletContext

Functions

Link copied to clipboard
open override fun afterPropertiesSet()
Link copied to clipboard
open override fun destroy()
Link copied to clipboard
override fun doFilter(request: ServletRequest, response: ServletResponse, filterChain: FilterChain)
Link copied to clipboard
override fun init(filterConfig: FilterConfig)
Link copied to clipboard
open override fun setBeanName(beanName: String)