Class DoSFilter.RateTracker

java.lang.Object
org.eclipse.jetty.servlets.DoSFilter.RateTracker
All Implemented Interfaces:
Serializable, Runnable, EventListener, javax.servlet.http.HttpSessionActivationListener, javax.servlet.http.HttpSessionBindingListener
Direct Known Subclasses:
DoSFilter.FixedRateTracker
Enclosing class:
DoSFilter

static class DoSFilter.RateTracker extends Object implements Runnable, javax.servlet.http.HttpSessionBindingListener, javax.servlet.http.HttpSessionActivationListener, 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
    • _type

      protected final DoSFilter.RateType _type
    • _maxRequestsPerSecond

      protected final int _maxRequestsPerSecond
    • _timestamps

      protected final long[] _timestamps
    • _next

      protected int _next
  • Constructor Details

    • RateTracker

      public RateTracker(javax.servlet.ServletContext context, String filterName, String id, DoSFilter.RateType type, 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()
    • getType

      public DoSFilter.RateType getType()
    • valueBound

      public void valueBound(javax.servlet.http.HttpSessionBindingEvent event)
      Specified by:
      valueBound in interface javax.servlet.http.HttpSessionBindingListener
    • valueUnbound

      public void valueUnbound(javax.servlet.http.HttpSessionBindingEvent event)
      Specified by:
      valueUnbound in interface javax.servlet.http.HttpSessionBindingListener
    • sessionWillPassivate

      public void sessionWillPassivate(javax.servlet.http.HttpSessionEvent se)
      Specified by:
      sessionWillPassivate in interface javax.servlet.http.HttpSessionActivationListener
    • sessionDidActivate

      public void sessionDidActivate(javax.servlet.http.HttpSessionEvent se)
      Specified by:
      sessionDidActivate in interface javax.servlet.http.HttpSessionActivationListener
    • 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