Class InMemoryAbuseDetectionService

java.lang.Object
com.svenruppert.jsentinel.credential.abuse.InMemoryAbuseDetectionService
All Implemented Interfaces:
AbuseDetectionService

public final class InMemoryAbuseDetectionService extends Object implements AbuseDetectionService
In-memory reference implementation of AbuseDetectionService.

Each (AbuseAttemptType, AbuseDimension, dimensionKey) tuple has its own sliding-window deque of failure timestamps. AbuseDimension.USERNAME counters track failures only; AbuseDimension.CLIENT_ADDRESS, AbuseDimension.TENANT and AbuseDimension.GLOBAL track every attempt regardless of outcome (the volume axes).

Auditing is best-effort: every block / step-up / delay decision publishes a RateLimitExceeded event with the dimension encoded in the scope field. Sink failures are swallowed (CWE-778).