Class NuxeoIdempotentFilter

java.lang.Object
javax.servlet.GenericFilter
javax.servlet.http.HttpFilter
org.nuxeo.ecm.platform.web.common.idempotency.NuxeoIdempotentFilter
All Implemented Interfaces:
Serializable, javax.servlet.Filter, javax.servlet.FilterConfig

public class NuxeoIdempotentFilter extends javax.servlet.http.HttpFilter
Filter handling an idempotency key in POST requests.

If HEADER_KEY is found in the request header, will intercept request handling to:

  • mark the request as being processed
  • capture the response when request was processed without any error and store it
  • return the stored response if a subsequent request with the same key is processed again
  • return a conflict response if a request with the same key is processed while the first request is still in progress.
Since:
11.5
See Also:
  • Field Details

  • Constructor Details

    • NuxeoIdempotentFilter

      public NuxeoIdempotentFilter()
  • Method Details

    • getTTL

      protected Duration getTTL()
    • getStoreName

      protected String getStoreName()
    • doFilter

      protected void doFilter(javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response, javax.servlet.FilterChain chain) throws IOException, javax.servlet.ServletException
      Overrides:
      doFilter in class javax.servlet.http.HttpFilter
      Throws:
      IOException
      javax.servlet.ServletException
    • doFilterIdempotent

      protected boolean doFilterIdempotent(javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response, javax.servlet.FilterChain chain) throws IOException, javax.servlet.ServletException
      Throws:
      IOException
      javax.servlet.ServletException