Class DoSFilter.RateTracker

java.lang.Object
org.eclipse.jetty.servlets.DoSFilter.RateTracker
All Implemented Interfaces:
Serializable, Runnable
Direct Known Subclasses:
DoSFilter.FixedRateTracker
Enclosing class:
DoSFilter

static class DoSFilter.RateTracker extends Object implements Runnable, Serializable
A RateTracker is associated with a connection, and stores request rate data.
  • Field Details

    • serialVersionUID

      private static final long serialVersionUID
      See Also:
    • _filterName

      protected final String _filterName
    • _context

      protected transient javax.servlet.ServletContext _context
    • _id

      protected final String _id
    • _maxRequestsPerSecond

      protected final int _maxRequestsPerSecond
    • _timestamps

      protected final long[] _timestamps
    • _next

      protected int _next
  • Constructor Details

    • RateTracker

      RateTracker(javax.servlet.ServletContext context, String filterName, String id, int maxRequestsPerSecond)
  • Method Details

    • isRateExceeded

      public DoSFilter.OverLimit isRateExceeded(long now)
      Parameters:
      now - the time now (in nanoseconds) used to calculate elapsed time since previous requests.
      Returns:
      the current calculated request rate over the last second if rate exceeded, else null.
    • getId

      public String getId()
    • setContext

      public void setContext(javax.servlet.ServletContext context)
    • removeFromRateTrackers

      protected void removeFromRateTrackers(DoSFilter filter, String id)
    • addToRateTrackers

      private void addToRateTrackers(DoSFilter filter, DoSFilter.RateTracker tracker)
    • run

      public void run()
      Specified by:
      run in interface Runnable
    • toString

      public String toString()
      Overrides:
      toString in class Object