You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@felix.apache.org by fm...@apache.org on 2010/01/12 13:20:59 UTC
svn commit: r898301 -
/felix/trunk/http/base/src/main/java/org/apache/felix/http/base/internal/handler/ServletHandlerRequest.java
Author: fmeschbe
Date: Tue Jan 12 12:20:58 2010
New Revision: 898301
URL: http://svn.apache.org/viewvc?rev=898301&view=rev
Log:
FELIX-1979 Applying proposed patch, which seems to fix this issue.
Modified:
felix/trunk/http/base/src/main/java/org/apache/felix/http/base/internal/handler/ServletHandlerRequest.java
Modified: felix/trunk/http/base/src/main/java/org/apache/felix/http/base/internal/handler/ServletHandlerRequest.java
URL: http://svn.apache.org/viewvc/felix/trunk/http/base/src/main/java/org/apache/felix/http/base/internal/handler/ServletHandlerRequest.java?rev=898301&r1=898300&r2=898301&view=diff
==============================================================================
--- felix/trunk/http/base/src/main/java/org/apache/felix/http/base/internal/handler/ServletHandlerRequest.java (original)
+++ felix/trunk/http/base/src/main/java/org/apache/felix/http/base/internal/handler/ServletHandlerRequest.java Tue Jan 12 12:20:58 2010
@@ -16,6 +16,9 @@
*/
package org.apache.felix.http.base.internal.handler;
+import java.io.UnsupportedEncodingException;
+import java.net.URLDecoder;
+
import javax.servlet.http.HttpServletRequestWrapper;
import javax.servlet.http.HttpServletRequest;
@@ -33,7 +36,7 @@
super(req);
this.alias = alias;
}
-
+
@Override
public String getAuthType()
{
@@ -41,7 +44,7 @@
if (authType != null) {
return authType;
}
-
+
return super.getAuthType();
}
@@ -52,7 +55,7 @@
this.pathInfo = calculatePathInfo();
this.pathInfoCalculated = true;
}
-
+
return this.pathInfo;
}
@@ -62,7 +65,7 @@
final String info = getPathInfo();
return (null == info) ? null : getRealPath(info);
}
-
+
@Override
public String getRemoteUser()
{
@@ -70,7 +73,7 @@
if (remoteUser != null) {
return remoteUser;
}
-
+
return super.getRemoteUser();
}
@@ -87,7 +90,7 @@
{
final int servletPathLength = getServletPath().length();
final String contextPath = getContextPath();
-
+
String pathInfo = getRequestURI();
pathInfo = pathInfo.substring(contextPath.length());
pathInfo = pathInfo.replaceAll("[/]{2,}", "/");
@@ -98,6 +101,14 @@
pathInfo = pathInfo.substring(0, scPos);
}
+ try {
+ pathInfo = URLDecoder.decode(pathInfo, "UTF-8");
+ } catch (UnsupportedEncodingException uee) {
+ // not really expected here, UTF-8 is required
+ } catch (IllegalArgumentException iae) {
+ // illegal encoding used, don't care
+ }
+
if ("".equals(pathInfo) && servletPathLength != 0) {
pathInfo = null;
}
@@ -106,6 +117,8 @@
pathInfo = "/" + pathInfo;
}
+
+
return pathInfo;
}
}