struts-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Brian Ferris (JIRA)" <>
Subject [jira] Updated: (WW-3128) struts2-rest-plugin incorrectly handles multipart/form-data content-type data
Date Fri, 15 May 2009 15:09:42 GMT


Brian Ferris updated WW-3128:

    Attachment: struts2-rest-plugin-MultiPartFormDataHandler.patch

The attached patched implements the proposed solution of adding a new ContentTypeHandler for
"multipart/form-data", registering the handler in "struts-plugin.xml" and changing the parsing
of the content-type in "DefaultContentTypeHandlerManager".

> struts2-rest-plugin incorrectly handles multipart/form-data content-type data
> -----------------------------------------------------------------------------
>                 Key: WW-3128
>                 URL:
>             Project: Struts 2
>          Issue Type: Bug
>          Components: Plugin - REST
>    Affects Versions: 2.1.6
>            Reporter: Brian Ferris
>         Attachments: struts2-rest-plugin-MultiPartFormDataHandler.patch
> 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.

View raw message