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
- Direct Known Subclasses:
DoSFilter.FixedRateTracker
- Enclosing class:
- DoSFilter
static class DoSFilter.RateTracker extends java.lang.Object implements java.lang.Runnable, java.io.Serializable
A RateTracker is associated with a connection, and stores request rate data.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description class
DoSFilter.RateTracker.Overage
-
Field Summary
Fields Modifier and Type Field Description protected javax.servlet.ServletContext
_context
protected java.lang.String
_filterName
protected java.lang.String
_id
protected int
_maxRequestsPerSecond
protected int
_next
protected long[]
_timestamps
private static long
serialVersionUID
-
Constructor Summary
Constructors Constructor Description RateTracker(javax.servlet.ServletContext context, java.lang.String filterName, java.lang.String id, int maxRequestsPerSecond)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description private void
addToRateTrackers(DoSFilter filter, DoSFilter.RateTracker tracker)
java.lang.String
getId()
DoSFilter.OverLimit
isRateExceeded(long now)
protected void
removeFromRateTrackers(DoSFilter filter, java.lang.String id)
void
run()
void
setContext(javax.servlet.ServletContext context)
java.lang.String
toString()
-
-
-
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
-
_maxRequestsPerSecond
protected final int _maxRequestsPerSecond
-
_timestamps
protected final long[] _timestamps
-
_next
protected int _next
-
-
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()
-
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:
run
in interfacejava.lang.Runnable
-
toString
public java.lang.String toString()
- Overrides:
toString
in classjava.lang.Object
-
-