Class RateLimitFilter

java.lang.Object
org.codelibs.fess.filter.RateLimitFilter
All Implemented Interfaces:
jakarta.servlet.Filter

public class RateLimitFilter extends Object implements jakarta.servlet.Filter
Filter for rate limiting to protect against bot attacks and excessive requests. Tracks request counts per IP address and blocks excessive requests based on configurable thresholds.
  • Constructor Summary

    Constructors
    Constructor
    Description
    Creates a new instance of RateLimitFilter.
  • Method Summary

    Modifier and Type
    Method
    Description
    void
    doFilter(jakarta.servlet.ServletRequest request, jakarta.servlet.ServletResponse response, jakarta.servlet.FilterChain chain)
     
    protected void
    sendBlockedResponse(jakarta.servlet.http.HttpServletResponse response)
    Send a 403 Forbidden response for blocked IPs.
    protected void
    sendRateLimitResponse(jakarta.servlet.http.HttpServletResponse response, int retryAfterSeconds)
    Send a 429 Too Many Requests response.

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

    Methods inherited from interface jakarta.servlet.Filter

    destroy, init
  • Constructor Details

    • RateLimitFilter

      public RateLimitFilter()
      Creates a new instance of RateLimitFilter.
  • Method Details

    • doFilter

      public void doFilter(jakarta.servlet.ServletRequest request, jakarta.servlet.ServletResponse response, jakarta.servlet.FilterChain chain) throws IOException, jakarta.servlet.ServletException
      Specified by:
      doFilter in interface jakarta.servlet.Filter
      Throws:
      IOException
      jakarta.servlet.ServletException
    • sendBlockedResponse

      protected void sendBlockedResponse(jakarta.servlet.http.HttpServletResponse response) throws IOException
      Send a 403 Forbidden response for blocked IPs.
      Parameters:
      response - the HTTP response
      Throws:
      IOException - if an I/O error occurs
    • sendRateLimitResponse

      protected void sendRateLimitResponse(jakarta.servlet.http.HttpServletResponse response, int retryAfterSeconds) throws IOException
      Send a 429 Too Many Requests response.
      Parameters:
      response - the HTTP response
      retryAfterSeconds - the Retry-After header value
      Throws:
      IOException - if an I/O error occurs