rate limiting e cpf masking

This commit is contained in:
2025-06-19 19:56:17 -03:00
parent 68d91b8151
commit ecbf2f07d6
4 changed files with 42 additions and 3 deletions

View File

@@ -8,6 +8,7 @@ namespace OpenCand.API.Config
public const string DefaultPolicy = "DefaultPolicy";
public const string CandidatoSearchPolicy = "CandidatoSearchPolicy";
public const string CpfRevealPolicy = "CpfRevealPolicy";
public const string EstatisticaPolicy = "EstatisticaPolicy";
public static void ConfigureRateLimiting(this IServiceCollection services)
{
@@ -50,6 +51,15 @@ namespace OpenCand.API.Config
options.QueueLimit = 0; // No burst
});
// CPF Reveal policy: 25 requests per minute with 10 burst
options.AddFixedWindowLimiter(policyName: EstatisticaPolicy, options =>
{
options.PermitLimit = 25;
options.Window = TimeSpan.FromMinutes(1);
options.QueueProcessingOrder = QueueProcessingOrder.OldestFirst;
options.QueueLimit = 10; // No burst
});
options.OnRejected = async (context, token) =>
{
context.HttpContext.Response.StatusCode = 429;