public class ThrottlingFilter extends Object implements Filter
Constructor and Description |
---|
ThrottlingFilter(AsyncFunction<ContextAndRequest,String,Exception> requestGroupingPolicy,
ThrottlingPolicy throttlingRatePolicy,
ThrottlingStrategy throttlingStrategy)
Constructs a ThrottlingFilter.
|
Modifier and Type | Method and Description |
---|---|
Promise<Response,NeverThrowsException> |
filter(Context context,
Request request,
Handler next)
Filters the request and/or response of an exchange.
|
void |
stop()
Stops this filter and frees the resources.
|
public ThrottlingFilter(AsyncFunction<ContextAndRequest,String,Exception> requestGroupingPolicy, ThrottlingPolicy throttlingRatePolicy, ThrottlingStrategy throttlingStrategy)
requestGroupingPolicy
- the key used to identify the token bucket (must not be null
).throttlingRatePolicy
- the datasource where to lookup for the rate to apply (must not be null
).throttlingStrategy
- the throttling strategy to apply.public void stop()
public Promise<Response,NeverThrowsException> filter(Context context, Request request, Handler next)
Filter
next.handle(context, request)
.
This method may elect not to pass the request to the next filter or
handler, and instead handle the request itself. It can achieve this by
merely avoiding a call to next.handle(context, request)
and creating its own response object. The filter is also at liberty to
replace a response with another of its own by intercepting the response
returned by the next handler.
Copyright 2011-2017 ForgeRock AS.