struts2-rest-plugin incorrectly handles multipart/form-data content-type data
-----------------------------------------------------------------------------

                 Key: WW-3128
                 URL: https://issues.apache.org/struts/browse/WW-3128
             Project: Struts 2
          Issue Type: Bug
          Components: Plugin - REST
    Affects Versions: 2.1.6
            Reporter: Brian Ferris


When a POST request is made with "multipart/form-data" encoding, such as to 
upload a file, the "DefaultContentTypeHandlerManager" has no custom input 
handler registered to handle "multipart/form-data" data.  The plugin assumes a 
default input handler based on the request extension.  In case of "xml" (which 
is also the default handler failing all else), the handler attempts to parse 
the payload as xml, which results in an exception being thrown.

The solution is to write a custom content-type handler similar to the 
"FormUrlEncodedHandler" that ignores the form payload.  In addition, the 
"DefaultContentTypeHandlerManager" needs to be modified, since the content-type 
of the form data is not actually "multipart/form-data", but rather 
""multipart/form-data; boundary=abcdefg".  Simple parsing is done to remove the 
additional parameters of the content-type so that the proper handler can be 
correctly resolved.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to