Class DoSHandler

All Implemented Interfaces:
Handler, Handler.Container, Handler.Singleton, Request.Handler, Container, Destroyable, Dumpable, Dumpable.DumpableContainer, LifeCycle, Invocable

@ManagedObject("DoS Prevention Handler") public class DoSHandler extends ConditionalHandler.ElseNext

A Denial of Service Handler that protects from attacks by limiting the request rate from remote clients.

  • Field Details

  • Constructor Details

    • DoSHandler

      public DoSHandler(@Name("trackerFactory") DoSHandler.Tracker.Factory trackerFactory)
      Parameters:
      trackerFactory - Factory to create a Tracker
    • DoSHandler

      public DoSHandler(@Name("clientIdFn") Function<Request,String> clientIdFn, @Name("trackerFactory") DoSHandler.Tracker.Factory trackerFactory, @Name("rejectHandler") Request.Handler rejectHandler, @Name("maxTrackers") int maxTrackers)
      Parameters:
      clientIdFn - Function to extract a remote client identifier from a request.
      trackerFactory - Factory to create a Tracker
      rejectHandler - A Handler used to reject excess requests, or null for a default.
      maxTrackers - The maximum number of remote clients to track or -1 for a default value, 0 for unlimited. If this limit is exceeded, then requests from additional remote clients are rejected.
    • DoSHandler

      public DoSHandler(@Name("handler") Handler handler, @Name("clientIdFn") Function<Request,String> clientIdFn, @Name("trackerFactory") DoSHandler.Tracker.Factory trackerFactory, @Name("rejectHandler") Request.Handler rejectHandler, @Name("maxTrackers") int maxTrackers)
      Parameters:
      handler - Then next Handler or null
      clientIdFn - Function to extract a remote client identifier from a request.
      trackerFactory - Factory to create a Tracker
      rejectHandler - A Handler used to reject excess requests, or null for a default.
      maxTrackers - The maximum number of remote clients to track or -1 for a default value, 0 for unlimited. If this limit is exceeded, then requests from additional remote clients are rejected.
    • DoSHandler

      public DoSHandler(@Name("handler") Handler handler, @Name("clientIdFn") Function<Request,String> clientIdFn, @Name("trackerFactory") DoSHandler.Tracker.Factory trackerFactory, @Name("rejectHandler") Request.Handler rejectHandler, @Name("maxTrackers") int maxTrackers, @Name("rejectUntracked") boolean rejectUntracked)
      Parameters:
      handler - Then next Handler or null
      clientIdFn - Function to extract a remote client identifier from a request.
      trackerFactory - Factory to create a Tracker
      rejectHandler - A Handler used to reject excess requests, or null for a default.
      maxTrackers - The maximum number of remote clients to track or -1 for a default value, 0 for unlimited. If this limit is exceeded, then requests from additional remote clients are rejected.
  • Method Details