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 Details

    • STACK_INDEX

      public static final int STACK_INDEX
      Stack 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 rate
      limitValue - the rate limit ceiling value
      securityManager - Security Manager
      daemonManager - 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:
      provideDefinitions in interface io.vertigo.core.node.definition.SimpleDefinitionProvider
    • accept

      public boolean accept(WebServiceDefinition webServiceDefinition)
      Specified by:
      accept in interface WebServiceHandlerPlugin
      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:
      handle in interface WebServiceHandlerPlugin
      Parameters:
      request - Request
      response - Response
      routeContext - Context of this request
      chain - current HandlerChain.
      Returns:
      Response body
      Throws:
      SessionException - Session expired exception
    • getStackIndex

      public int getStackIndex()
      Description copied from interface: WebServiceHandlerPlugin
      Return 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 be RestfulServiceWebServiceHandlerPlugin which has the index 120. Therefore the provided index must be between 0 and 119
      Specified by:
      getStackIndex in interface WebServiceHandlerPlugin
      Returns:
      the index (between 0 and 119)