Ether Framework
Unified API docs for Ether modules
Loading...
Searching...
No Matches
RateLimitPolicy.java
Go to the documentation of this file.
1
package
dev.rafex.ether.http.security.ratelimit;
2
3
/*-
4
* #%L
5
* ether-http-security
6
* %%
7
* Copyright (C) 2025 - 2026 Raúl Eduardo González Argote
8
* %%
9
* Permission is hereby granted, free of charge, to any person obtaining a copy
10
* of this software and associated documentation files (the "Software"), to deal
11
* in the Software without restriction, including without limitation the rights
12
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
13
* copies of the Software, and to permit persons to whom the Software is
14
* furnished to do so, subject to the following conditions:
15
*
16
* The above copyright notice and this permission notice shall be included in
17
* all copies or substantial portions of the Software.
18
*
19
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
20
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
21
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
22
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
23
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
24
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
25
* THE SOFTWARE.
26
* #L%
27
*/
28
29
/**
30
* Política de control de tasa (rate limiting) para prevenir abusos.
31
* <p>
32
* Limita la cantidad de solicitudes por ventana de tiempo para proteger
33
* contra ataques de fuerza bruta o abuso de recursos.
34
* </p>
35
*/
36
public
record
RateLimitPolicy
(Scope scope,
int
maxRequests,
int
windowSeconds,
int
burst,
int
maxConcurrentRequests) {
37
38
/**
39
* Alcance de la política de rate limiting.
40
* <ul>
41
* <li>GLOBAL: Un límite compartido por todos los clientes</li>
42
* <li>PER_IP: Un límite por cada dirección IP</li>
43
* </ul>
44
*/
45
public
enum
Scope {
46
GLOBAL, PER_IP
47
}
48
49
/**
50
* Verifica si el rate limiting está habilitado.
51
* @return true si maxRequests > 0 y windowSeconds > 0
52
*/
53
public
boolean
isEnabled() {
54
return
maxRequests > 0 && windowSeconds > 0;
55
}
56
}
dev.rafex.ether.http.security.ratelimit.RateLimitPolicy
record RateLimitPolicy(Scope scope, int maxRequests, int windowSeconds, int burst, int maxConcurrentRequests)
Política de control de tasa (rate limiting) para prevenir abusos.
Definition
RateLimitPolicy.java:36
Generated by
1.16.1