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
Fields -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprotected voiddoFilter(javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response, javax.servlet.FilterChain chain) protected booleandoFilterIdempotent(javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response, javax.servlet.FilterChain chain) protected Stringprotected DurationgetTTL()Methods inherited from class javax.servlet.http.HttpFilter
doFilterMethods inherited from class javax.servlet.GenericFilter
getFilterConfig, getFilterName, getInitParameter, getInitParameterNames, getServletContext, init, initMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods 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
-
MAX_CONTENT_SIZE
-
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:
doFilterin classjavax.servlet.http.HttpFilter- Throws:
IOExceptionjavax.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:
IOExceptionjavax.servlet.ServletException
-