Author: markt
Date: Sat Nov  8 17:35:58 2008
New Revision: 712461

URL: http://svn.apache.org/viewvc?rev=712461&view=rev
Log:
Fix https://issues.apache.org/bugzilla/show_bug.cgi?id=42673
Correctly handle includes with multi-level contexts
Patch provided by Peter Jodeleit

Modified:
    tomcat/trunk/java/org/apache/catalina/ssi/SSIServletExternalResolver.java

Modified: 
tomcat/trunk/java/org/apache/catalina/ssi/SSIServletExternalResolver.java
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/ssi/SSIServletExternalResolver.java?rev=712461&r1=712460&r2=712461&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/catalina/ssi/SSIServletExternalResolver.java 
(original)
+++ tomcat/trunk/java/org/apache/catalina/ssi/SSIServletExternalResolver.java 
Sat Nov  8 17:35:58 2008
@@ -353,14 +353,12 @@
     }
 
 
-    protected String getPathWithoutContext(String servletPath) {
-        String retVal = null;
-        int secondSlash = servletPath.indexOf('/', 1);
-        if (secondSlash >= 0) {
-            //cut off context
-            retVal = servletPath.substring(secondSlash);
+    protected String getPathWithoutContext(final String contextPath,
+            final String servletPath) {
+        if (servletPath.startsWith(contextPath)) {
+            return servletPath.substring(contextPath.length());
         }
-        return retVal;
+        return servletPath;
     }
 
 
@@ -419,7 +417,8 @@
                 // ie:
                 // '/file1.shtml' vs '/appName1/file1.shtml'
                 if (!isRootContext(normContext)) {
-                    String noContext = getPathWithoutContext(normalized);
+                    String noContext = getPathWithoutContext(
+                            normContext.getContextPath(), normalized);
                     if (noContext == null) {
                         throw new IOException(
                                 "Couldn't remove context from path: "



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to