Class IdRateLimitUserLoginService
java.lang.Object
com.io7m.idstore.server.service.ratelimit.IdRateLimitUserLoginService
- All Implemented Interfaces:
IdRateLimiterType
,IdRateLimitUserLoginServiceType
,com.io7m.repetoir.core.RPServiceType
public final class IdRateLimitUserLoginService
extends Object
implements IdRateLimitUserLoginServiceType
A rate limiting service for logins.
-
Method Summary
Modifier and TypeMethodDescriptioncreate
(IdMetricsServiceType metrics, long expiration, TimeUnit timeUnit) Create a rate limit service.boolean
isAllowedByRateLimit
(String host) toString()
waitTime()
-
Method Details
-
create
public static IdRateLimitUserLoginServiceType create(IdMetricsServiceType metrics, long expiration, TimeUnit timeUnit) Create a rate limit service.- Parameters:
metrics
- The metrics serviceexpiration
- The expiration for tokenstimeUnit
- The time unit for expirations- Returns:
- A rate limiter
-
isAllowedByRateLimit
- Specified by:
isAllowedByRateLimit
in interfaceIdRateLimitUserLoginServiceType
- Parameters:
host
- The host performing the action- Returns:
true
if the given operation is allowed by rate limiting
-
description
- Specified by:
description
in interfacecom.io7m.repetoir.core.RPServiceType
-
toString
-
waitTime
- Specified by:
waitTime
in interfaceIdRateLimiterType
- Returns:
- The suggested wait time if a rate limit is exceeded
-