Package org.eclipse.jetty.servlets
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.
-
Nested Class Summary
Nested Classes -
Field Summary
FieldsModifier and TypeFieldDescriptionprotected javax.servlet.ServletContextprotected final Stringprotected final Stringprotected final intprotected intprotected final long[]protected final DoSFilter.RateTypeprivate static final long -
Constructor Summary
ConstructorsConstructorDescriptionRateTracker(javax.servlet.ServletContext context, String filterName, String id, DoSFilter.RateType type, int maxRequestsPerSecond) -
Method Summary
Modifier and TypeMethodDescriptionprivate voidaddToRateTrackers(DoSFilter filter, DoSFilter.RateTracker tracker) getId()getType()isRateExceeded(long now) protected voidremoveFromRateTrackers(DoSFilter filter, String id) voidrun()voidsessionDidActivate(javax.servlet.http.HttpSessionEvent se) voidsessionWillPassivate(javax.servlet.http.HttpSessionEvent se) voidsetContext(javax.servlet.ServletContext context) toString()voidvalueBound(javax.servlet.http.HttpSessionBindingEvent event) voidvalueUnbound(javax.servlet.http.HttpSessionBindingEvent event)
-
Field Details
-
serialVersionUID
private static final long serialVersionUID- See Also:
-
_filterName
-
_context
protected transient javax.servlet.ServletContext _context -
_id
-
_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
- 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
-
getType
-
valueBound
public void valueBound(javax.servlet.http.HttpSessionBindingEvent event) - Specified by:
valueBoundin interfacejavax.servlet.http.HttpSessionBindingListener
-
valueUnbound
public void valueUnbound(javax.servlet.http.HttpSessionBindingEvent event) - Specified by:
valueUnboundin interfacejavax.servlet.http.HttpSessionBindingListener
-
sessionWillPassivate
public void sessionWillPassivate(javax.servlet.http.HttpSessionEvent se) - Specified by:
sessionWillPassivatein interfacejavax.servlet.http.HttpSessionActivationListener
-
sessionDidActivate
public void sessionDidActivate(javax.servlet.http.HttpSessionEvent se) - Specified by:
sessionDidActivatein interfacejavax.servlet.http.HttpSessionActivationListener
-
setContext
public void setContext(javax.servlet.ServletContext context) -
removeFromRateTrackers
-
addToRateTrackers
-
run
public void run() -
toString
-