Class ThreadLimitHandler

  • All Implemented Interfaces:
    Handler, HandlerContainer, Container, Destroyable, Dumpable, Dumpable.DumpableContainer, LifeCycle

    @Deprecated(since="2021-05-27")
    public class ThreadLimitHandler
    extends HandlerWrapper
    Deprecated.
    The Eclipse Jetty and Apache Felix Http Jetty packages are no longer supported.

    Handler to limit the threads per IP address for DOS protection

    The ThreadLimitHandler applies a limit to the number of Threads that can be used simultaneously per remote IP address.

    The handler makes a determination of the remote IP separately to any that may be made by the ForwardedRequestCustomizer or similar:

    • This handler will use either only a single style of forwarded header. This is on the assumption that a trusted local proxy will produce only a single forwarded header and that any additional headers are likely from untrusted client side proxies.
    • If multiple instances of a forwarded header are provided, this handler will use the right-most instance, which will have been set from the trusted local proxy
    Requests in excess of the limit will be asynchronously suspended until a thread is available.

    This is a simpler alternative to DosFilter

    • Constructor Detail

      • ThreadLimitHandler

        public ThreadLimitHandler()
        Deprecated.
      • ThreadLimitHandler

        public ThreadLimitHandler​(@Name("forwardedHeader")
                                  java.lang.String forwardedHeader)
        Deprecated.
      • ThreadLimitHandler

        public ThreadLimitHandler​(@Name("forwardedHeader")
                                  java.lang.String forwardedHeader,
                                  @Name("rfc7239")
                                  boolean rfc7239)
        Deprecated.
    • Method Detail

      • isEnabled

        @ManagedAttribute("true if this handler is enabled")
        public boolean isEnabled()
        Deprecated.
      • setEnabled

        public void setEnabled​(boolean enabled)
        Deprecated.
      • getThreadLimit

        @ManagedAttribute("The maximum threads that can be dispatched per remote IP")
        public int getThreadLimit()
        Deprecated.
      • setThreadLimit

        public void setThreadLimit​(int threadLimit)
        Deprecated.
      • include

        @ManagedOperation("Include IP in thread limits")
        public void include​(java.lang.String inetAddressPattern)
        Deprecated.
      • exclude

        @ManagedOperation("Exclude IP from thread limits")
        public void exclude​(java.lang.String inetAddressPattern)
        Deprecated.