You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by ti...@apache.org on 2010/10/04 22:37:11 UTC
svn commit: r1004415 - in /tomcat/trunk/java/org/apache/catalina/servlets:
DefaultServlet.java WebdavServlet.java
Author: timw
Date: Mon Oct 4 20:37:11 2010
New Revision: 1004415
URL: http://svn.apache.org/viewvc?rev=1004415&view=rev
Log:
More fixes for https://issues.apache.org/bugzilla/show_bug.cgi?id=50026
Calculating path prefix used in listings correctly so links in listings produced by WebdavServlet mounted to a subpath are correct.
Modified:
tomcat/trunk/java/org/apache/catalina/servlets/DefaultServlet.java
tomcat/trunk/java/org/apache/catalina/servlets/WebdavServlet.java
Modified: tomcat/trunk/java/org/apache/catalina/servlets/DefaultServlet.java
URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/servlets/DefaultServlet.java?rev=1004415&r1=1004414&r2=1004415&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/catalina/servlets/DefaultServlet.java (original)
+++ tomcat/trunk/java/org/apache/catalina/servlets/DefaultServlet.java Mon Oct 4 20:37:11 2010
@@ -374,6 +374,18 @@ public class DefaultServlet
/**
+ * Determines the appropriate path to prepend resources with
+ * when generating directory listings. Depending on the behaviour of
+ * {@link #getRelativePath(HttpServletRequest)} this will change.
+ * @param request the request to determine the path for
+ * @return the prefix to apply to all resources in the listing.
+ */
+ protected String getPathPrefix(final HttpServletRequest request) {
+ return request.getContextPath();
+ }
+
+
+ /**
* Process a GET request for the specified resource.
*
* @param request The servlet request we are processing
@@ -890,8 +902,7 @@ public class DefaultServlet
if (serveContent) {
// Serve the directory browser
- renderResult =
- render(request.getContextPath(), cacheEntry);
+ renderResult = render(getPathPrefix(request), cacheEntry);
}
}
Modified: tomcat/trunk/java/org/apache/catalina/servlets/WebdavServlet.java
URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/servlets/WebdavServlet.java?rev=1004415&r1=1004414&r2=1004415&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/catalina/servlets/WebdavServlet.java (original)
+++ tomcat/trunk/java/org/apache/catalina/servlets/WebdavServlet.java Mon Oct 4 20:37:11 2010
@@ -428,6 +428,20 @@ public class WebdavServlet
/**
+ * Determines the prefix for standard directory GET listings.
+ */
+ @Override
+ protected String getPathPrefix(final HttpServletRequest request) {
+ // Repeat the servlet path (e.g. /webdav/) in the listing path
+ String contextPath = request.getContextPath();
+ if (request.getServletPath() != null) {
+ contextPath = contextPath + request.getServletPath();
+ }
+ return contextPath;
+ }
+
+
+ /**
* OPTIONS Method.
*
* @param req The request
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org
For additional commands, e-mail: dev-help@tomcat.apache.org