[jboss-cvs] jboss-seam/src/main/org/jboss/seam/servlet ...
Shane Bryzak
Shane_Bryzak at symantec.com
Tue Jan 30 05:47:24 EST 2007
User: sbryzak2
Date: 07/01/30 05:47:23
Modified: src/main/org/jboss/seam/servlet MultipartRequest.java
Log:
moved some security classes to org.jboss.seam.security package
Revision Changes Path
1.3 +46 -17 jboss-seam/src/main/org/jboss/seam/servlet/MultipartRequest.java
(In the diff below, changes in quantity of whitespace are not shown.)
Index: MultipartRequest.java
===================================================================
RCS file: /cvsroot/jboss/jboss-seam/src/main/org/jboss/seam/servlet/MultipartRequest.java,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -b -r1.2 -r1.3
--- MultipartRequest.java 23 Jan 2007 05:19:36 -0000 1.2
+++ MultipartRequest.java 30 Jan 2007 10:47:23 -0000 1.3
@@ -3,9 +3,11 @@
import java.io.IOException;
import java.io.InputStream;
import java.io.UnsupportedEncodingException;
+import java.util.ArrayList;
import java.util.Collections;
import java.util.Enumeration;
import java.util.HashMap;
+import java.util.List;
import java.util.Map;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
@@ -24,17 +26,17 @@
private class PartWrapper
{
- private Map<String,String> params;
+ private Map<String,Object> params;
private byte[] data;
private String contentType;
private String fileName;
public PartWrapper()
{
- params = new HashMap<String,String>();
+ params = new HashMap<String,Object>();
}
- public Map<String,String> getParams()
+ public Map<String,Object> getParams()
{
return params;
}
@@ -146,15 +148,20 @@
}
}
+ // Extract the content type and filename
for (String key : entry.getParams().keySet())
{
- String val = entry.getParams().get(key);
- if (val != null)
+ Object val = entry.getParams().get(key);
+ if (val instanceof String)
+ {
+ String s = (String) entry.getParams().get(key);
+ if (s != null)
{
if (entry.getContentType() == null && FILE_CONTENT_TYPE.equalsIgnoreCase(key))
- entry.setContentType(val);
+ entry.setContentType(s);
else if (entry.getFileName() == null && FILE_NAME.equalsIgnoreCase(key))
- entry.setFileName(val);
+ entry.setFileName(s);
+ }
}
}
@@ -163,7 +170,7 @@
entry.setData(data);
if (entry.getParams().containsKey("name"))
- parameters.put(entry.getParams().get("name"), entry);
+ parameters.put((String) entry.getParams().get("name"), entry);
}
/**
@@ -290,8 +297,8 @@
private byte[] getBoundary(String contentType)
{
- Map<String, String> params = parseParams(contentType, ";");
- String boundaryStr = params.get("boundary");
+ Map<String, Object> params = parseParams(contentType, ";");
+ String boundaryStr = (String) params.get("boundary");
if (boundaryStr == null) return null;
@@ -308,7 +315,7 @@
private static final Pattern PARAM_VALUE_PATTERN = Pattern
.compile("^\\s*([^\\s=]+)\\s*[=:]\\s*([^\\s]+)\\s*$");
- private void parseParams(String paramStr, String separator, Map<String,String> target)
+ private void parseParams(String paramStr, String separator, Map<String,Object> target)
{
String[] parts = paramStr.split("[" + separator + "]");
@@ -317,20 +324,42 @@
Matcher m = PARAM_VALUE_PATTERN.matcher(part);
if (m.matches())
{
+ String key = m.group(1);
String value = m.group(2);
// Strip double quotes
if (value.startsWith("\"") && value.endsWith("\""))
value = value.substring(1, value.length() - 1);
- target.put(m.group(1), value);
+ if (target.containsKey(key))
+ {
+ Object v = target.get(key);
+ if (v instanceof List)
+ ((List) v).add(value);
+ else if (v instanceof String)
+ {
+ List<String> vals = new ArrayList<String>();
+ vals.add((String) v);
+ vals.add(value);
+ target.put(key, value);
+ }
+ else
+ {
+ List vals = new ArrayList();
+ vals.add(v);
+ vals.add(value);
+ target.put(key, value);
+ }
+ }
+ else
+ target.put(key, value);
}
}
}
- private Map<String, String> parseParams(String paramStr, String separator)
+ private Map<String, Object> parseParams(String paramStr, String separator)
{
- Map<String, String> target = new HashMap<String, String>();
+ Map<String, Object> target = new HashMap<String, Object>();
parseParams(paramStr, separator, target);
return target;
}
More information about the jboss-cvs-commits
mailing list