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.ServletContext
protected final String
protected final String
protected final int
protected int
protected final long[]
protected final DoSFilter.RateType
private static final long
-
Constructor Summary
ConstructorsConstructorDescriptionRateTracker
(javax.servlet.ServletContext context, String filterName, String id, DoSFilter.RateType type, int maxRequestsPerSecond) -
Method Summary
Modifier and TypeMethodDescriptionprivate void
addToRateTrackers
(DoSFilter filter, DoSFilter.RateTracker tracker) getId()
getType()
isRateExceeded
(long now) protected void
removeFromRateTrackers
(DoSFilter filter, String id) void
run()
void
sessionDidActivate
(javax.servlet.http.HttpSessionEvent se) void
sessionWillPassivate
(javax.servlet.http.HttpSessionEvent se) void
setContext
(javax.servlet.ServletContext context) toString()
void
valueBound
(javax.servlet.http.HttpSessionBindingEvent event) void
valueUnbound
(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:
valueBound
in interfacejavax.servlet.http.HttpSessionBindingListener
-
valueUnbound
public void valueUnbound(javax.servlet.http.HttpSessionBindingEvent event) - Specified by:
valueUnbound
in interfacejavax.servlet.http.HttpSessionBindingListener
-
sessionWillPassivate
public void sessionWillPassivate(javax.servlet.http.HttpSessionEvent se) - Specified by:
sessionWillPassivate
in interfacejavax.servlet.http.HttpSessionActivationListener
-
sessionDidActivate
public void sessionDidActivate(javax.servlet.http.HttpSessionEvent se) - Specified by:
sessionDidActivate
in interfacejavax.servlet.http.HttpSessionActivationListener
-
setContext
public void setContext(javax.servlet.ServletContext context) -
removeFromRateTrackers
-
addToRateTrackers
-
run
public void run() -
toString
-