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
    • requestLimit

      private final int requestLimit
    • requestLimitInBytes

      private final int requestLimitInBytes
    • requestLimitPeriodInSeconds

      private final int requestLimitPeriodInSeconds
    • server

      private final Long server
    • logger

      private DatabaseLogger logger
  • Constructor Details

    • RequestLimiter

      RequestLimiter(int requestLimit, int requestLimitInBytes, int requestLimitPeriodInSeconds, int ipFingerprintFactor)
      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)
  • Method Details