public class RateLimitFilter extends java.lang.Object implements ServiceFilter
ServiceFilter
, der Aufrufe ueberwacht, Frequenzen
limitiert oder Benutzer mittels ApiKeys oder BasicAuth
authentifiziert.service.filter.1.class=de.cm.osm2po.service.filter.RateLimitFilter service.filter.1.keystore=[user.home]/Desktop/apikeys.txt service.filter.1.backup=[user.home]/Desktop/apikeys.backup service.filter.1.basicauth=false (false=nur apikeys als auth) service.filter.1.refresh=1 (Minuten) service.filter.1.ttl=5 (Minuten)Keystore-Datei (apikeys.txt s.o.) Beispiel:
deadKey=1,1,1,2010-1-1 apiKey=5,10,0,2018-10-1 basicAuthUser@1355030580=[apiKey] 127.0.0.1=[deadKey]Die Keys werden vom
RateLimiter
ueberwacht und die
Werte an RateLimit.RateLimit(String)
uebergeben.
IPs koennen ebenfalls als Schluessel verwendet werden und
wie im Beispiel oben sogar gesperrt werden.Constructor and Description |
---|
RateLimitFilter() |
Modifier and Type | Method and Description |
---|---|
void |
init(Config config,
int index)
Quasi-Konstruktor wird von
Osm2poService gerufen. |
void |
postHandle(com.sun.net.httpserver.HttpExchange htx,
boolean success)
Wird vor dem Schreiben von HTTP-Header und -Response gerufen.
|
boolean |
preHandle(com.sun.net.httpserver.HttpExchange htx,
java.lang.String endpoint)
Filtert einen HTTP-Request vor der Verarbeitung.
|
void |
shutDown()
Signal, dass Server gleich runterfaehrt.
|
public void init(Config config, int index)
ServiceFilter
Osm2poService
gerufen.init
in interface ServiceFilter
config
- Config
index
- int Index in der Konfigurationpublic boolean preHandle(com.sun.net.httpserver.HttpExchange htx, java.lang.String endpoint) throws java.lang.Exception
ServiceFilter
preHandle
in interface ServiceFilter
htx
- HttpExchange
endpoint
- optional name of the requested resourceServiceException
- z.B. ServiceException
/ Auth-Fehlerjava.lang.Exception
public void shutDown()
ServiceFilter
shutDown
in interface ServiceFilter
public void postHandle(com.sun.net.httpserver.HttpExchange htx, boolean success)
ServiceFilter
postHandle
in interface ServiceFilter
htx
- HttpExchange
success
- true: Response fehlerfrei erstellt, HTTP 200 wird gesendet.