public class RateLimit extends java.lang.Object implements Var<RateLimit>
RateLimit(int, long, long, Date)
,
validate()
,
RateLimiter
Modifier and Type | Field and Description |
---|---|
static int |
KEY_AUTHFAILED |
static int |
KEY_DDOS |
static int |
KEY_EXPIRED |
static int |
KEY_OK |
static int |
KEY_RATELIMIT |
Constructor and Description |
---|
RateLimit()
Nur fuer Serialisierung gedacht.
|
RateLimit(int maxRequests,
long maxInterval,
long penalty,
java.util.Date validThru)
Parameter-Konstruktor.
|
RateLimit(java.lang.String csv)
CSV-Konstruktor, der einen Strimg-Parameter parst und an
den eigentlichen Konstruktor deligiert.
|
Modifier and Type | Method and Description |
---|---|
long |
getAge() |
long |
getBlockedFor() |
long |
getIdle() |
long |
getInterval() |
long |
getMalCounter() |
int |
getStatus() |
long |
getValidThru() |
boolean |
isTransient()
Dies ist eine Konvention fuer Systeme, die zwischen Langzeit-
und Transient-Objekten unterscheiden muessen.
|
RateLimit |
readFromStream(InStream inStream)
De-Serialisiert dieses Objekt aus einem Cache-Stream.
|
void |
resetMonitoring()
Setzt die Ueberwachungswerte und die Stoppuhr
auf Initial und Jetzt zurueck.
|
void |
setStatus(int status) |
java.lang.String |
toString() |
boolean |
updateConstraints(int maxRequests,
long maxInterval,
long penalty,
java.util.Date validThru)
Ueberschreibt die Ueberwachungsregel zur Laufzeit.
|
boolean |
updateConstraintsCsv(java.lang.String csv)
Ueberschreibt die CSV-Ueberwachungsregel zur Laufzeit.
|
boolean |
updateContraints(RateLimit rl)
Ueberschreibt die Ueberwachungsregel zur Laufzeit und benutzt
die Grenzwerte aus einer Vorlage.
|
int |
validate()
Validiert gegen die hier geltende Regel und aktualisiert
die internen Zaehler und Zeitstempel.
|
void |
writeToStream(OutStream outStream)
Serialisiert dieses Objekt in einen Stream.
|
public static final int KEY_OK
public static final int KEY_RATELIMIT
public static final int KEY_AUTHFAILED
public static final int KEY_EXPIRED
public static final int KEY_DDOS
public RateLimit()
resetMonitoring()
aus und
setzt auch keine internen Variablen!public RateLimit(int maxRequests, long maxInterval, long penalty, java.util.Date validThru)
maxRequests
- int Maximale Anzahl von AufrufenmaxInterval
- long (Millisekunden) In diesem Zeitintervalpenalty
- long (Millisekunden) Zusaetzliche Zeitstrafe bei UeberschreitungvalidThru
- Absolutes Ablaufdatum, wenn NULL, dann transient.RateLimit
,
RateLimit(String)
public RateLimit(java.lang.String csv)
csv
- Parameter fuer RateLimit(int, long, long, Date)
JJJJ-MM-TT
uebergeben werden. Die Zeitangaben sind hier in Sekunden,
statt in Millisekunden.public final void resetMonitoring()
getStatus()
public final boolean updateConstraints(int maxRequests, long maxInterval, long penalty, java.util.Date validThru)
maxRequests
- int Maximale Anzahl von AufrufenmaxInterval
- long (Millisekunden) In diesem Zeitintervalpenalty
- long (Millisekunden) Zusaetzliche Zeitstrafe bei UeberschreitungvalidThru
- Absolutes Ablaufdatum, wenn NULL, dann transient.resetMonitoring()
,
RateLimit(int, long, long, Date)
,
updateConstraintsCsv(String)
public final boolean updateContraints(RateLimit rl)
rl
- RateLimit
VorlageresetMonitoring()
,
RateLimit(int, long, long, Date)
public final boolean updateConstraintsCsv(java.lang.String csv)
csv
- Parameter fuer updateConstraints(int, long, long, Date)
JJJJ-MM-TT
uebergeben werden. Die Zeitangaben sind hier in Sekunden statt
in Millisekunden.resetMonitoring()
,
RateLimit(String)
public final boolean isTransient()
RateLimiter
verwendet dies z.B. fuer die Unterscheidung
von Objekten, die ueber einen Keystore oder zur Laufzeit
erstellt wurden.getValidThru()
<=0
public final void setStatus(int status)
public final long getAge()
public final long getIdle()
public final long getMalCounter()
public final long getBlockedFor()
public final long getInterval()
public final long getValidThru()
public final int getStatus()
public final int validate()
getStatus()
KEY_RATELIMIT
RateLimit(int, long, long, Date)
public java.lang.String toString()
toString
in class java.lang.Object
public void writeToStream(OutStream outStream)
Var
writeToStream
in interface Var<RateLimit>
outStream
- OutStream