public class ThrottlingFilter extends GenericHeapObject implements Filter
Modifier and Type | Class and Description |
---|---|
static class |
ThrottlingFilter.Heaplet
Creates and initializes a throttling filter in a heap environment.
|
logger, storage
Constructor and Description |
---|
ThrottlingFilter(TimeService time,
int numberOfRequests,
Duration duration,
Expression<String> partitionKey)
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.
|
getLogger, getStorage, setLogger, setStorage
public ThrottlingFilter(TimeService time, int numberOfRequests, Duration duration, Expression<String> partitionKey)
time
- the time service.numberOfRequests
- the maximum of requests that can be filtered out during the duration.duration
- the duration of the sliding window.partitionKey
- the optional expression that tells in which bucket we have to take some token to count the output
rate.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-2015 ForgeRock AS.