Class RateLimitingWebServiceHandlerPlugin
java.lang.Object
io.vertigo.vega.plugins.webservice.handler.RateLimitingWebServiceHandlerPlugin
- All Implemented Interfaces:
io.vertigo.core.node.component.CoreComponent,io.vertigo.core.node.component.Plugin,io.vertigo.core.node.definition.DefinitionProvider,io.vertigo.core.node.definition.SimpleDefinitionProvider,WebServiceHandlerPlugin
public final class RateLimitingWebServiceHandlerPlugin
extends Object
implements WebServiceHandlerPlugin, io.vertigo.core.node.definition.SimpleDefinitionProvider
Rate limit handler.
- Author:
- npiedeloup
-
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final intStack index of the handler for sorting at startup -
Constructor Summary
ConstructorsConstructorDescriptionRateLimitingWebServiceHandlerPlugin(VSecurityManager securityManager, io.vertigo.core.daemon.DaemonManager daemonManager, Optional<Integer> windowSeconds, Optional<Long> limitValue) Constructor. -
Method Summary
Modifier and TypeMethodDescriptionbooleanaccept(WebServiceDefinition webServiceDefinition) intReturn an index to compute the order of the handlers stack.handle(jakarta.servlet.http.HttpServletRequest request, jakarta.servlet.http.HttpServletResponse response, WebServiceCallContext routeContext, HandlerChain chain) Do handle of this route.List<? extends io.vertigo.core.node.definition.Definition>provideDefinitions(io.vertigo.core.node.definition.DefinitionSpace definitionSpace) Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface io.vertigo.core.node.definition.DefinitionProvider
addDefinitionResourceConfigMethods inherited from interface io.vertigo.core.node.definition.SimpleDefinitionProvider
get
-
Field Details
-
STACK_INDEX
public static final int STACK_INDEXStack index of the handler for sorting at startup- See Also:
-
-
Constructor Details
-
RateLimitingWebServiceHandlerPlugin
@Inject public RateLimitingWebServiceHandlerPlugin(VSecurityManager securityManager, io.vertigo.core.daemon.DaemonManager daemonManager, Optional<Integer> windowSeconds, Optional<Long> limitValue) Constructor.- Parameters:
windowSeconds- the time windows use to limit calls ratelimitValue- the rate limit ceiling valuesecurityManager- Security ManagerdaemonManager- Manager des daemons
-
-
Method Details
-
provideDefinitions
public List<? extends io.vertigo.core.node.definition.Definition> provideDefinitions(io.vertigo.core.node.definition.DefinitionSpace definitionSpace) - Specified by:
provideDefinitionsin interfaceio.vertigo.core.node.definition.SimpleDefinitionProvider
-
accept
- Specified by:
acceptin interfaceWebServiceHandlerPlugin- Parameters:
webServiceDefinition- WebServiceDefinition- Returns:
- If this handler should be use for this webService
-
handle
public Object handle(jakarta.servlet.http.HttpServletRequest request, jakarta.servlet.http.HttpServletResponse response, WebServiceCallContext routeContext, HandlerChain chain) throws SessionException Do handle of this route.- Specified by:
handlein interfaceWebServiceHandlerPlugin- Parameters:
request- Requestresponse- ResponserouteContext- Context of this requestchain- current HandlerChain.- Returns:
- Response body
- Throws:
SessionException- Session expired exception
-
getStackIndex
public int getStackIndex()Description copied from interface:WebServiceHandlerPluginReturn an index to compute the order of the handlers stack. Please check the index of the provided handlers by vertigo and choose the index for yours accordingly. Vertigo's handlers start à 10 and leave a space of 10 between each. The last handler must beRestfulServiceWebServiceHandlerPluginwhich has the index 120. Therefore the provided index must be between 0 and 119- Specified by:
getStackIndexin interfaceWebServiceHandlerPlugin- Returns:
- the index (between 0 and 119)
-