Class RequestLimiter
java.lang.Object
org.languagetool.server.RequestLimiter
- Direct Known Subclasses:
ErrorRequestLimiter
Limit the maximum number of request per IP address for a given time range.
-
Nested Class Summary
Nested Classes -
Field Summary
FieldsModifier and TypeFieldDescriptionprivate final intprivate DatabaseLogger(package private) static final int(package private) final List<RequestLimiter.RequestEvent> private final intprivate final intprivate final intprivate final Long -
Constructor Summary
ConstructorsConstructorDescriptionRequestLimiter(int requestLimit, int requestLimitInBytes, int requestLimitPeriodInSeconds) RequestLimiter(int requestLimit, int requestLimitInBytes, int requestLimitPeriodInSeconds, int ipFingerprintFactor) -
Method Summary
Modifier and TypeMethodDescription(package private) void(package private) void(package private) Stringprivate LonggetClientId(Map<String, String> parameters) private StringgetReferer(Map<String, List<String>> httpHeader) (package private) intThe maximum number of request pergetRequestLimitPeriodInSeconds().(package private) intThe maximum number of request bytes pergetRequestLimitPeriodInSeconds().(package private) intThe time period over which requests are considered, in seconds.private intgetRequestSize(Map<String, String> params) private StringgetUserAgent(Map<String, List<String>> httpHeader)
-
Field Details
-
REQUEST_QUEUE_SIZE
static final int REQUEST_QUEUE_SIZE- See Also:
-
requestEvents
-
ipFingerprintFactor
private final int ipFingerprintFactor -
requestLimit
private final int requestLimit -
requestLimitInBytes
private final int requestLimitInBytes -
requestLimitPeriodInSeconds
private final int requestLimitPeriodInSeconds -
server
-
logger
-
-
Constructor Details
-
RequestLimiter
RequestLimiter(int requestLimit, int requestLimitInBytes, int requestLimitPeriodInSeconds, int ipFingerprintFactor) - Parameters:
requestLimit- the maximum number of request per requestLimitPeriodInSecondsrequestLimitPeriodInSeconds- the time period over which requests are considered, in secondsipFingerprintFactor- allow limits x times larger per ip when fingerprints differ (i.e. assume there may be a maximum of x users behind the same ip)
-
RequestLimiter
RequestLimiter(int requestLimit, int requestLimitInBytes, int requestLimitPeriodInSeconds)
-
-
Method Details
-
getRequestLimit
int getRequestLimit()The maximum number of request pergetRequestLimitPeriodInSeconds(). -
getRequestLimitInBytes
int getRequestLimitInBytes()The maximum number of request bytes pergetRequestLimitPeriodInSeconds().- Since:
- 4.0
-
getRequestLimitPeriodInSeconds
int getRequestLimitPeriodInSeconds()The time period over which requests are considered, in seconds. -
computeFingerprint
-
checkAccess
-
getRequestSize
-
getClientId
-
getReferer
-
getUserAgent
-
checkLimit
-