You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cxf.apache.org by se...@apache.org on 2011/12/20 23:51:55 UTC
svn commit: r1221511 - in
/cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs:
provider/FormEncodingProvider.java utils/FormUtils.java
utils/JAXRSUtils.java utils/multipart/AttachmentUtils.java
Author: sergeyb
Date: Tue Dec 20 22:51:55 2011
New Revision: 1221511
URL: http://svn.apache.org/viewvc?rev=1221511&view=rev
Log:
[CXF-3987] Removing confusing Multipart checks when reading plain multipart/form-data payloads
Modified:
cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/provider/FormEncodingProvider.java
cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/utils/FormUtils.java
cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/utils/JAXRSUtils.java
cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/utils/multipart/AttachmentUtils.java
Modified: cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/provider/FormEncodingProvider.java
URL: http://svn.apache.org/viewvc/cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/provider/FormEncodingProvider.java?rev=1221511&r1=1221510&r2=1221511&view=diff
==============================================================================
--- cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/provider/FormEncodingProvider.java (original)
+++ cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/provider/FormEncodingProvider.java Tue Dec 20 22:51:55 2011
@@ -157,7 +157,7 @@ public class FormEncodingProvider implem
if (mt.isCompatible(MediaType.MULTIPART_FORM_DATA_TYPE)) {
MultipartBody body =
AttachmentUtils.getMultipartBody(mc, attachmentDir, attachmentThreshold, attachmentMaxSize);
- FormUtils.populateMapFromMultipart(params, anns, body, decode);
+ FormUtils.populateMapFromMultipart(params, body, decode);
} else {
String enc = HttpUtils.getEncoding(mt, "UTF-8");
FormUtils.populateMapFromString(params,
Modified: cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/utils/FormUtils.java
URL: http://svn.apache.org/viewvc/cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/utils/FormUtils.java?rev=1221511&r1=1221510&r2=1221511&view=diff
==============================================================================
--- cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/utils/FormUtils.java (original)
+++ cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/utils/FormUtils.java Tue Dec 20 22:51:55 2011
@@ -23,7 +23,6 @@ import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
-import java.lang.annotation.Annotation;
import java.util.Arrays;
import java.util.Enumeration;
import java.util.Iterator;
@@ -41,7 +40,6 @@ import org.apache.cxf.helpers.IOUtils;
import org.apache.cxf.interceptor.LoggingInInterceptor;
import org.apache.cxf.jaxrs.ext.multipart.Attachment;
import org.apache.cxf.jaxrs.ext.multipart.ContentDisposition;
-import org.apache.cxf.jaxrs.ext.multipart.Multipart;
import org.apache.cxf.jaxrs.ext.multipart.MultipartBody;
import org.apache.cxf.phase.PhaseInterceptorChain;
@@ -147,23 +145,20 @@ public final class FormUtils {
}
public static void populateMapFromMultipart(MultivaluedMap<String, String> params,
- Annotation[] anns,
MultipartBody body,
boolean decode) {
List<Attachment> atts = body.getAllAttachments();
for (Attachment a : atts) {
ContentDisposition cd = a.getContentDisposition();
- if (cd == null || !MULTIPART_FORM_DATA_TYPE.equalsIgnoreCase(cd.getType())
- || cd.getParameter("name") == null) {
- Multipart id = AnnotationUtils.getAnnotation(anns, Multipart.class);
-
- if (id == null || id.required()) {
- throw new WebApplicationException(400);
- } else {
- return;
- }
+ if (cd == null || !MULTIPART_FORM_DATA_TYPE.equalsIgnoreCase(cd.getType())) {
+ continue;
+ }
+ String cdName = cd.getParameter("name");
+ String contentId = a.getContentId();
+ String name = StringUtils.isEmpty(cdName) ? contentId : cdName.replace("\"", "").replace("'", "");
+ if (StringUtils.isEmpty(name)) {
+ throw new WebApplicationException(400);
}
- String name = cd.getParameter("name").replace("\"", "").replace("'", "");
try {
String value = IOUtils.toString(a.getDataHandler().getInputStream());
params.add(HttpUtils.urlDecode(name),
Modified: cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/utils/JAXRSUtils.java
URL: http://svn.apache.org/viewvc/cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/utils/JAXRSUtils.java?rev=1221511&r1=1221510&r2=1221511&view=diff
==============================================================================
--- cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/utils/JAXRSUtils.java (original)
+++ cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/utils/JAXRSUtils.java Tue Dec 20 22:51:55 2011
@@ -745,7 +745,7 @@ public final class JAXRSUtils {
if (mt != null && "multipart".equalsIgnoreCase(mt.getType())
&& MediaType.MULTIPART_FORM_DATA_TYPE.isCompatible(mt)) {
MultipartBody body = AttachmentUtils.getMultipartBody(mc);
- FormUtils.populateMapFromMultipart(params, paramAnns, body, decode);
+ FormUtils.populateMapFromMultipart(params, body, decode);
} else {
org.apache.cxf.common.i18n.Message errorMsg =
new org.apache.cxf.common.i18n.Message("WRONG_FORM_MEDIA_TYPE",
Modified: cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/utils/multipart/AttachmentUtils.java
URL: http://svn.apache.org/viewvc/cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/utils/multipart/AttachmentUtils.java?rev=1221511&r1=1221510&r2=1221511&view=diff
==============================================================================
--- cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/utils/multipart/AttachmentUtils.java (original)
+++ cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/utils/multipart/AttachmentUtils.java Tue Dec 20 22:51:55 2011
@@ -20,7 +20,6 @@
package org.apache.cxf.jaxrs.utils.multipart;
import java.io.IOException;
-import java.lang.annotation.Annotation;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
@@ -141,7 +140,6 @@ public final class AttachmentUtils {
boolean errorIfMissing) {
MultivaluedMap<String, T> data = new MetadataMap<String, T>();
FormUtils.populateMapFromMultipart((MultivaluedMap)data,
- new Annotation[]{},
AttachmentUtils.getMultipartBody(mc),
true);
return data;