Class MultipartPreservingRequest
java.lang.Object
javax.servlet.ServletRequestWrapper
javax.servlet.http.HttpServletRequestWrapper
de.xima.fc.http.MultipartPreservingRequest
- All Implemented Interfaces:
javax.servlet.http.HttpServletRequest, javax.servlet.ServletRequest
public class MultipartPreservingRequest
extends javax.servlet.http.HttpServletRequestWrapper
A wrapper for
multipart HttpServletRequests that preserves their mulitpart parts,
meaning the parts can be accessed multiple times during the entire request scope.
This wrapper also performs malware scanning immediately when the parts are parsed.
- Since:
- 8.0.0
- Author:
- XIMA MEDIA GmbH, Dresden
-
Nested Class Summary
Nested Classes -
Field Summary
Fields inherited from interface javax.servlet.http.HttpServletRequest
BASIC_AUTH, CLIENT_CERT_AUTH, DIGEST_AUTH, FORM_AUTH -
Constructor Summary
ConstructorsConstructorDescriptionMultipartPreservingRequest(javax.servlet.http.HttpServletRequest request) Constructor for the request wrapper. -
Method Summary
Modifier and TypeMethodDescriptionstatic MultipartPreservingRequestgetCurrent(IRequestContext requestCtx) Gets the current instance ofMultipartPreservingRequestof this request context if it exists.static MultipartPreservingRequestgetCurrent(javax.servlet.http.HttpServletRequest request) Gets the current instance ofMultipartPreservingRequestof this request if it exists.List<org.apache.commons.fileupload.FileItem> Returns the file items of thismultipartcontent request.javax.servlet.ServletInputStreamgetParameter(String name) String[]getParameterValues(String name) javax.servlet.http.PartCollection<javax.servlet.http.Part> getParts()Opens a new input stream to read the request body.voidreset()static javax.servlet.http.HttpServletRequestwrap(javax.servlet.http.HttpServletRequest request) Wraps the request if it is amultipartcontentPOSTrequest and not already aMultipartPreservingRequest.Methods inherited from class javax.servlet.http.HttpServletRequestWrapper
authenticate, changeSessionId, getAuthType, getContextPath, getCookies, getDateHeader, getHeader, getHeaderNames, getHeaders, getHttpServletMapping, getIntHeader, getMethod, getPathInfo, getPathTranslated, getQueryString, getRemoteUser, getRequestedSessionId, getRequestURI, getRequestURL, getServletPath, getSession, getSession, getTrailerFields, getUserPrincipal, isRequestedSessionIdFromCookie, isRequestedSessionIdFromUrl, isRequestedSessionIdFromURL, isRequestedSessionIdValid, isTrailerFieldsReady, isUserInRole, login, logout, newPushBuilder, upgradeMethods inherited from class javax.servlet.ServletRequestWrapper
getAsyncContext, getAttribute, getAttributeNames, getCharacterEncoding, getContentLength, getContentLengthLong, getContentType, getDispatcherType, getLocalAddr, getLocale, getLocales, getLocalName, getLocalPort, getProtocol, getRealPath, getRemoteAddr, getRemoteHost, getRemotePort, getRequest, getRequestDispatcher, getScheme, getServerName, getServerPort, getServletContext, isAsyncStarted, isAsyncSupported, isSecure, isWrapperFor, isWrapperFor, removeAttribute, setAttribute, setCharacterEncoding, setRequest, startAsync, startAsyncMethods inherited from class Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface javax.servlet.ServletRequest
getAsyncContext, getAttribute, getAttributeNames, getCharacterEncoding, getContentLength, getContentLengthLong, getContentType, getDispatcherType, getLocalAddr, getLocale, getLocales, getLocalName, getLocalPort, getProtocol, getRealPath, getRemoteAddr, getRemoteHost, getRemotePort, getRequestDispatcher, getScheme, getServerName, getServerPort, getServletContext, isAsyncStarted, isAsyncSupported, isSecure, removeAttribute, setAttribute, setCharacterEncoding, startAsync, startAsync
-
Constructor Details
-
MultipartPreservingRequest
Constructor for the request wrapper.- Parameters:
request- to be wrapped.- Throws:
IllegalArgumentException- if the request is not amultipartPOST request.IOException
-
-
Method Details
-
getFileItems
Returns the file items of thismultipartcontent request.- Returns:
- parsed file items of this request.
-
getInputStream
- Specified by:
getInputStreamin interfacejavax.servlet.ServletRequest- Overrides:
getInputStreamin classjavax.servlet.ServletRequestWrapper- Throws:
IOException
-
getParameter
-
getParameterMap
-
getParameterNames
- Specified by:
getParameterNamesin interfacejavax.servlet.ServletRequest- Overrides:
getParameterNamesin classjavax.servlet.ServletRequestWrapper
-
getParameterValues
-
getReader
- Specified by:
getReaderin interfacejavax.servlet.ServletRequest- Overrides:
getReaderin classjavax.servlet.ServletRequestWrapper- Throws:
IOException
-
getParts
public Collection<javax.servlet.http.Part> getParts() throws IOException, javax.servlet.ServletException- Specified by:
getPartsin interfacejavax.servlet.http.HttpServletRequest- Overrides:
getPartsin classjavax.servlet.http.HttpServletRequestWrapper- Throws:
IOExceptionjavax.servlet.ServletException
-
getPart
public javax.servlet.http.Part getPart(String name) throws IOException, javax.servlet.ServletException - Specified by:
getPartin interfacejavax.servlet.http.HttpServletRequest- Overrides:
getPartin classjavax.servlet.http.HttpServletRequestWrapper- Throws:
IOExceptionjavax.servlet.ServletException
-
newInputStream
Opens a new input stream to read the request body. In contrast togetInputStream(), this method always returns a new stream that starts at the beginning of the request body. The caller must ensure the input stream is closed after use. This method does not affect the state of the input stream returned bygetInputStream().- Returns:
- A new input stream to read the request body.
- Throws:
IOException
-
reset
public void reset() -
getCurrent
Gets the current instance ofMultipartPreservingRequestof this request if it exists.- Parameters:
request- to get the current instance ofMultipartPreservingRequestfor.- Returns:
- the current instance of
MultipartPreservingRequestornullif it does not exist.
-
getCurrent
Gets the current instance ofMultipartPreservingRequestof this request context if it exists.- Parameters:
requestCtx- to get the current instance ofMultipartPreservingRequestfor.- Returns:
- the current instance of
MultipartPreservingRequestornullif it does not exist.
-
wrap
public static javax.servlet.http.HttpServletRequest wrap(javax.servlet.http.HttpServletRequest request) throws IOException Wraps the request if it is amultipartcontentPOSTrequest and not already aMultipartPreservingRequest.- Parameters:
request- to wrap.- Returns:
- the wrapped request or the initial request if it is no
multipartcontentPOSTrequest. - Throws:
IOException
-