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 Summary
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionprotected void
doFilter
(javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response, javax.servlet.FilterChain chain) protected boolean
doFilterIdempotent
(javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response, javax.servlet.FilterChain chain) protected String
protected Duration
getTTL()
Methods inherited from class javax.servlet.http.HttpFilter
doFilter
Methods inherited from class javax.servlet.GenericFilter
getFilterConfig, getFilterName, getInitParameter, getInitParameterNames, getServletContext, init, init
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Methods inherited from interface javax.servlet.Filter
destroy
-
Field Details
-
HEADER_KEY
- See Also:
-
STORE_PROPERTY
- See Also:
-
DEFAULT_STORE
- See Also:
-
DEFAULT_TTL
-
TTL_DURATION_PROPERTY
- See Also:
-
INPROGRESS_MARKER
- See Also:
-
INFO_SUFFIX
- See Also:
-
DEFERRED_OUTPUT_STREAM_THRESHOLD
protected static final int DEFERRED_OUTPUT_STREAM_THRESHOLD- See Also:
-
MAX_CONTENT_SIZE
protected static final int MAX_CONTENT_SIZE- See Also:
-
IDEMPOTENT_METHODS
-
-
Constructor Details
-
NuxeoIdempotentFilter
public NuxeoIdempotentFilter()
-
-
Method Details
-
getTTL
-
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 classjavax.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
-