URL encoding and decoding fix ups and optimizations.

Added URLDecoder to mirror our optimized implementation of URLEncoder - based on optimized/modified JDK and W3 Consortium source code.
urlEncode() and urlDecode() methods added to server-side JavaScript 'stringUtils' object.

git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@10498 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
This commit is contained in:
Kevin Roast
2008-08-22 13:58:24 +00:00
parent fa71032179
commit 4216a1aab2
3 changed files with 7 additions and 14 deletions

View File

@@ -27,7 +27,6 @@ package org.alfresco.web.app.servlet;
import java.io.IOException;
import java.io.InputStream;
import java.net.SocketException;
import java.net.URLDecoder;
import java.text.MessageFormat;
import java.util.ArrayList;
import java.util.Date;
@@ -54,6 +53,7 @@ import org.alfresco.service.cmr.repository.StoreRef;
import org.alfresco.service.cmr.security.AccessStatus;
import org.alfresco.service.cmr.security.PermissionService;
import org.alfresco.service.namespace.QName;
import org.alfresco.util.URLDecoder;
import org.alfresco.util.URLEncoder;
import org.alfresco.web.app.Application;
import org.apache.commons.logging.Log;
@@ -156,7 +156,8 @@ public abstract class BaseDownloadContentServlet extends BaseServlet
// assume 'workspace' or other NodeRef based protocol for remaining URL elements
StoreRef storeRef = new StoreRef(t.nextToken(), t.nextToken());
String id = URLDecoder.decode(t.nextToken(), "UTF-8");
String id = URLDecoder.decode(t.nextToken());
// build noderef from the appropriate URL elements
nodeRef = new NodeRef(storeRef, id);

View File

@@ -25,8 +25,6 @@
package org.alfresco.web.app.servlet;
import java.io.IOException;
import java.io.UnsupportedEncodingException;
import java.net.URLDecoder;
import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;
@@ -44,6 +42,7 @@ import org.alfresco.service.cmr.model.FileFolderService;
import org.alfresco.service.cmr.model.FileInfo;
import org.alfresco.service.cmr.model.FileNotFoundException;
import org.alfresco.service.cmr.repository.NodeRef;
import org.alfresco.util.URLDecoder;
import org.alfresco.web.app.Application;
import org.alfresco.web.bean.LoginBean;
import org.alfresco.web.bean.repository.Repository;
@@ -283,7 +282,7 @@ public abstract class BaseServlet extends HttpServlet
// create a list of path elements (decode the URL as we go)
for (int x = 1; x < args.length; x++)
{
paths.add(decode ? URLDecoder.decode(args[x], "UTF-8") : args[x]);
paths.add(decode ? URLDecoder.decode(args[x]) : args[x]);
}
if (logger.isDebugEnabled())
@@ -302,13 +301,6 @@ public abstract class BaseServlet extends HttpServlet
if (logger.isDebugEnabled())
logger.debug("Resolved webdav path to NodeRef: " + nodeRef);
}
catch (UnsupportedEncodingException uee)
{
if (logger.isWarnEnabled())
logger.warn("Failed to resolve webdav path", uee);
nodeRef = null;
}
catch (FileNotFoundException fne)
{
if (logger.isWarnEnabled())

View File

@@ -29,7 +29,6 @@ import java.io.File;
import java.io.FileInputStream;
import java.io.InputStream;
import java.io.Serializable;
import java.net.URLDecoder;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@@ -51,6 +50,7 @@ import org.alfresco.service.cmr.repository.NodeRef;
import org.alfresco.service.cmr.repository.datatype.DefaultTypeConverter;
import org.alfresco.service.namespace.QName;
import org.alfresco.util.TempFileProvider;
import org.alfresco.util.URLDecoder;
import org.alfresco.web.app.servlet.BaseServlet;
import org.alfresco.web.app.servlet.ajax.InvokeCommand;
import org.alfresco.web.bean.repository.Repository;
@@ -111,7 +111,7 @@ public class FileUploadBean implements Serializable
}
else if (item.isFormField() && item.getFieldName().equals("currentPath"))
{
currentPath = URLDecoder.decode(item.getString(), "UTF-8");
currentPath = URLDecoder.decode(item.getString());
}
else
{