Package org.eclipse.jetty.servlets
Class DoSFilter.RateTracker
- java.lang.Object
-
- org.eclipse.jetty.servlets.DoSFilter.RateTracker
-
- All Implemented Interfaces:
java.io.Serializable,java.lang.Runnable,java.util.EventListener,javax.servlet.http.HttpSessionActivationListener,javax.servlet.http.HttpSessionBindingListener
- Direct Known Subclasses:
DoSFilter.FixedRateTracker
- Enclosing class:
- DoSFilter
static class DoSFilter.RateTracker extends java.lang.Object implements java.lang.Runnable, javax.servlet.http.HttpSessionBindingListener, javax.servlet.http.HttpSessionActivationListener, java.io.SerializableA RateTracker is associated with a connection, and stores request rate data.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description classDoSFilter.RateTracker.Overage
-
Field Summary
Fields Modifier and Type Field Description protected javax.servlet.ServletContext_contextprotected java.lang.String_filterNameprotected java.lang.String_idprotected int_maxRequestsPerSecondprotected int_nextprotected long[]_timestampsprotected DoSFilter.RateType_typeprivate static longserialVersionUID
-
Constructor Summary
Constructors Constructor Description RateTracker(javax.servlet.ServletContext context, java.lang.String filterName, java.lang.String id, DoSFilter.RateType type, int maxRequestsPerSecond)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description private voidaddToRateTrackers(DoSFilter filter, DoSFilter.RateTracker tracker)java.lang.StringgetId()DoSFilter.RateTypegetType()DoSFilter.OverLimitisRateExceeded(long now)protected voidremoveFromRateTrackers(DoSFilter filter, java.lang.String id)voidrun()voidsessionDidActivate(javax.servlet.http.HttpSessionEvent se)voidsessionWillPassivate(javax.servlet.http.HttpSessionEvent se)voidsetContext(javax.servlet.ServletContext context)java.lang.StringtoString()voidvalueBound(javax.servlet.http.HttpSessionBindingEvent event)voidvalueUnbound(javax.servlet.http.HttpSessionBindingEvent event)
-
-
-
Field Detail
-
serialVersionUID
private static final long serialVersionUID
- See Also:
- Constant Field Values
-
_filterName
protected final java.lang.String _filterName
-
_context
protected transient javax.servlet.ServletContext _context
-
_id
protected final java.lang.String _id
-
_type
protected final DoSFilter.RateType _type
-
_maxRequestsPerSecond
protected final int _maxRequestsPerSecond
-
_timestamps
protected final long[] _timestamps
-
_next
protected int _next
-
-
Constructor Detail
-
RateTracker
public RateTracker(javax.servlet.ServletContext context, java.lang.String filterName, java.lang.String id, DoSFilter.RateType type, int maxRequestsPerSecond)
-
-
Method Detail
-
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 java.lang.String getId()
-
getType
public DoSFilter.RateType 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
protected void removeFromRateTrackers(DoSFilter filter, java.lang.String id)
-
addToRateTrackers
private void addToRateTrackers(DoSFilter filter, DoSFilter.RateTracker tracker)
-
run
public void run()
- Specified by:
runin interfacejava.lang.Runnable
-
toString
public java.lang.String toString()
- Overrides:
toStringin classjava.lang.Object
-
-