You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@chemistry.apache.org by fm...@apache.org on 2010/05/20 20:57:21 UTC

svn commit: r946758 - /incubator/chemistry/opencmis/trunk/chemistry-opencmis-test/chemistry-opencmis-test-browser/src/main/java/org/apache/chemistry/opencmis/browser/BrowseServlet.java

Author: fmui
Date: Thu May 20 18:57:21 2010
New Revision: 946758

URL: http://svn.apache.org/viewvc?rev=946758&view=rev
Log:
OpenCMIS browser: attempt to fix the encoding issue (CMIS-210)

Modified:
    incubator/chemistry/opencmis/trunk/chemistry-opencmis-test/chemistry-opencmis-test-browser/src/main/java/org/apache/chemistry/opencmis/browser/BrowseServlet.java

Modified: incubator/chemistry/opencmis/trunk/chemistry-opencmis-test/chemistry-opencmis-test-browser/src/main/java/org/apache/chemistry/opencmis/browser/BrowseServlet.java
URL: http://svn.apache.org/viewvc/incubator/chemistry/opencmis/trunk/chemistry-opencmis-test/chemistry-opencmis-test-browser/src/main/java/org/apache/chemistry/opencmis/browser/BrowseServlet.java?rev=946758&r1=946757&r2=946758&view=diff
==============================================================================
--- incubator/chemistry/opencmis/trunk/chemistry-opencmis-test/chemistry-opencmis-test-browser/src/main/java/org/apache/chemistry/opencmis/browser/BrowseServlet.java (original)
+++ incubator/chemistry/opencmis/trunk/chemistry-opencmis-test/chemistry-opencmis-test-browser/src/main/java/org/apache/chemistry/opencmis/browser/BrowseServlet.java Thu May 20 18:57:21 2010
@@ -26,7 +26,7 @@ import java.io.OutputStream;
 import java.io.PrintWriter;
 import java.net.HttpURLConnection;
 import java.net.URL;
-import java.net.URLEncoder;
+import java.net.URLDecoder;
 import java.util.Enumeration;
 import java.util.HashMap;
 import java.util.Map;
@@ -52,9 +52,6 @@ import org.w3c.dom.Document;
 
 /**
  * CMIS Browser Servlet.
- * 
- * @author <a href="mailto:fmueller@opentext.com">Florian M&uuml;ller</a>
- * 
  */
 public class BrowseServlet extends HttpServlet {
 
@@ -131,7 +128,7 @@ public class BrowseServlet extends HttpS
      */
     @Override
     protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
-        if (req.getParameter(PARAM_URL) == null) {
+        if ((req.getQueryString() == null) || (!req.getQueryString().startsWith(PARAM_URL + "="))) {
             printInput(req, resp);
             return;
         }
@@ -143,7 +140,7 @@ public class BrowseServlet extends HttpS
      * Main method of the browser.
      */
     protected void doBrowse(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
-        String browseUrl = req.getParameter(PARAM_URL);
+        String browseUrl = URLDecoder.decode(req.getQueryString().substring(PARAM_URL.length() + 1), "UTF-8");
 
         // check URL
         if (!browseUrl.matches(fAllow)) {
@@ -151,30 +148,6 @@ public class BrowseServlet extends HttpS
             return;
         }
 
-        // re-encode parameters
-        int qm = browseUrl.indexOf('?');
-        if ((qm > -1) && (browseUrl.length() > qm + 1)) {
-            StringBuilder urlSb = new StringBuilder(browseUrl.substring(0, qm + 1));
-            StringBuilder paramSb = new StringBuilder();
-
-            for (int i = qm + 1; i < browseUrl.length(); i++) {
-                char c = browseUrl.charAt(i);
-                if ((c == '=') || (c == '&')) {
-                    urlSb.append(URLEncoder.encode(paramSb.toString(), "UTF-8"));
-                    urlSb.append(c);
-                    paramSb = new StringBuilder();
-                } else {
-                    paramSb.append(c);
-                }
-            }
-
-            if (paramSb.length() > 0) {
-                urlSb.append(URLEncoder.encode(paramSb.toString(), "UTF-8"));
-            }
-
-            browseUrl = urlSb.toString();
-        }
-
         try {
             // get content
             URL url = new URL(browseUrl);
@@ -220,7 +193,7 @@ public class BrowseServlet extends HttpS
                 // apply stylesheet
                 TransformerFactory f = TransformerFactory.newInstance();
                 Transformer t = f.newTransformer(stylesheet);
-                t.setParameter("browseUrl", getServletUrl(req) + "?url=");
+                t.setParameter("browseUrl", getServletUrl(req) + "?" + PARAM_URL + "=");
                 t.setParameter("auxRoot", getAuxRoot(req, fAuxRoot));
 
                 resp.setContentType("text/html");