Package de.xima.fc.http
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.HttpServletRequestWrapperA wrapper formultipartHttpServletRequests that preserves theirmulitpartparts, 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 Modifier and Type Class Description static classMultipartPreservingRequest.FileServletInputStream
-
Constructor Summary
Constructors Constructor Description MultipartPreservingRequest(javax.servlet.http.HttpServletRequest request)Constructor for the request wrapper.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description static 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>getFileItems()Returns the file items of thismultipartcontent request.javax.servlet.ServletInputStreamgetInputStream()StringgetParameter(String name)Map<String,String[]>getParameterMap()Enumeration<String>getParameterNames()String[]getParameterValues(String name)javax.servlet.http.PartgetPart(String name)Collection<javax.servlet.http.Part>getParts()BufferedReadergetReader()InputStreamnewInputStream()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, upgrade
-
Methods 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, startAsync
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods 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 Detail
-
MultipartPreservingRequest
public MultipartPreservingRequest(javax.servlet.http.HttpServletRequest request) throws IOExceptionConstructor for the request wrapper.- Parameters:
request- to be wrapped.- Throws:
IllegalArgumentException- if the request is not amultipartPOST request.IOException
-
-
Method Detail
-
getFileItems
public List<org.apache.commons.fileupload.FileItem> getFileItems()
Returns the file items of thismultipartcontent request.- Returns:
- parsed file items of this request.
-
getInputStream
public javax.servlet.ServletInputStream getInputStream() throws IOException- Specified by:
getInputStreamin interfacejavax.servlet.ServletRequest- Overrides:
getInputStreamin classjavax.servlet.ServletRequestWrapper- Throws:
IOException
-
getParameter
public String getParameter(String name)
- Specified by:
getParameterin interfacejavax.servlet.ServletRequest- Overrides:
getParameterin classjavax.servlet.ServletRequestWrapper
-
getParameterMap
public Map<String,String[]> getParameterMap()
- Specified by:
getParameterMapin interfacejavax.servlet.ServletRequest- Overrides:
getParameterMapin classjavax.servlet.ServletRequestWrapper
-
getParameterNames
public Enumeration<String> getParameterNames()
- Specified by:
getParameterNamesin interfacejavax.servlet.ServletRequest- Overrides:
getParameterNamesin classjavax.servlet.ServletRequestWrapper
-
getParameterValues
public String[] getParameterValues(String name)
- Specified by:
getParameterValuesin interfacejavax.servlet.ServletRequest- Overrides:
getParameterValuesin classjavax.servlet.ServletRequestWrapper
-
getReader
public BufferedReader getReader() throws IOException
- Specified by:
getReaderin interfacejavax.servlet.ServletRequest- Overrides:
getReaderin classjavax.servlet.ServletRequestWrapper- Throws:
IOException
-
getParts
public Collection<javax.servlet.http.Part> getParts()
- Specified by:
getPartsin interfacejavax.servlet.http.HttpServletRequest- Overrides:
getPartsin classjavax.servlet.http.HttpServletRequestWrapper
-
getPart
public javax.servlet.http.Part getPart(String name)
- Specified by:
getPartin interfacejavax.servlet.http.HttpServletRequest- Overrides:
getPartin classjavax.servlet.http.HttpServletRequestWrapper
-
newInputStream
public InputStream newInputStream() throws IOException
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
public static MultipartPreservingRequest getCurrent(javax.servlet.http.HttpServletRequest request)
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
public static MultipartPreservingRequest getCurrent(IRequestContext requestCtx)
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 IOExceptionWraps 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
-
-