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 2012/08/02 12:51:24 UTC
svn commit: r1368411 -
/chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-bindings/src/main/java/org/apache/chemistry/opencmis/server/shared/HttpUtils.java
Author: fmui
Date: Thu Aug 2 10:51:23 2012
New Revision: 1368411
URL: http://svn.apache.org/viewvc?rev=1368411&view=rev
Log:
AtomPub and Browser binding server: never let the Container decode...
Modified:
chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-bindings/src/main/java/org/apache/chemistry/opencmis/server/shared/HttpUtils.java
Modified: chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-bindings/src/main/java/org/apache/chemistry/opencmis/server/shared/HttpUtils.java
URL: http://svn.apache.org/viewvc/chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-bindings/src/main/java/org/apache/chemistry/opencmis/server/shared/HttpUtils.java?rev=1368411&r1=1368410&r2=1368411&view=diff
==============================================================================
--- chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-bindings/src/main/java/org/apache/chemistry/opencmis/server/shared/HttpUtils.java (original)
+++ chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-bindings/src/main/java/org/apache/chemistry/opencmis/server/shared/HttpUtils.java Thu Aug 2 10:51:23 2012
@@ -19,8 +19,10 @@
package org.apache.chemistry.opencmis.server.shared;
import java.io.File;
+import java.io.UnsupportedEncodingException;
import java.lang.reflect.Method;
import java.math.BigInteger;
+import java.net.URLDecoder;
import java.util.Locale;
import java.util.Map;
@@ -138,13 +140,24 @@ public class HttpUtils {
/**
* Splits the path into its fragments.
*/
- public static String[] splitPath(HttpServletRequest request) {
- String p = request.getPathInfo();
- if (p == null) {
+ public static String[] splitPath(final HttpServletRequest request) {
+ int prefixLength = request.getContextPath().length() + request.getServletPath().length();
+ String p = request.getRequestURI().substring(prefixLength);
+
+ if (p.length() == 0) {
return new String[0];
}
- return p.substring(1).split("/");
+ String[] result = p.substring(1).split("/");
+ for (int i = 0; i < result.length; i++) {
+ try {
+ result[i] = URLDecoder.decode(result[i], "UTF-8");
+ } catch (UnsupportedEncodingException e) {
+ // should not happen
+ }
+ }
+
+ return result;
}
// -------------------------------------------------------------------------