Class RequestLimiter

java.lang.Object
org.languagetool.server.RequestLimiter
Direct Known Subclasses:
ErrorRequestLimiter

class RequestLimiter extends Object
Limit the maximum number of request per IP address for a given time range.
  • Field Details

    • REQUEST_QUEUE_SIZE

      static final int REQUEST_QUEUE_SIZE
      See Also:
    • requestEvents

      final List<RequestLimiter.RequestEvent> requestEvents
    • ipFingerprintFactor

      private final int ipFingerprintFactor
    • whitelistUsers

      private final List<String> whitelistUsers
    • whitelistLimit

      private final int whitelistLimit
    • requestLimit

      private final int requestLimit
    • ipRequestLimit

      private final int ipRequestLimit
    • requestLimitInBytes

      private final int requestLimitInBytes
    • ipRequestLimitInBytes

      private final int ipRequestLimitInBytes
    • requestLimitPeriodInSeconds

      private final int requestLimitPeriodInSeconds
  • Constructor Details

    • RequestLimiter

      RequestLimiter(int requestLimit, int requestLimitInBytes, int requestLimitPeriodInSeconds, int ipFingerprintFactor, List<String> whitelistUsers, int whitelistLimit)
      Parameters:
      requestLimit - the maximum number of request per requestLimitPeriodInSeconds
      requestLimitPeriodInSeconds - the time period over which requests are considered, in seconds
      ipFingerprintFactor - 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, int ipFingerprintFactor)
    • RequestLimiter

      RequestLimiter(int requestLimit, int requestLimitInBytes, int requestLimitPeriodInSeconds)
  • Method Details