[prev in list] [next in list] [prev in thread] [next in thread]
List: slide-dev
Subject: Some Bugs if WebDAV-Servlet is not the Default-Servlet
From: Stefan_Lützkendorf <luetzken () itaw ! hu-berlin ! de>
Date: 2003-10-20 19:23:11
[Download RAW message or body]
Hello,
I found some bugs which occur if the WebdavServlet is not mapped
to the "/" servlet path, i.e. if it is not the default servlet.
For the testcases I have run the fixes below are working.
(tests passed: functional/copy, delete, get, lock, move, prop*, put, users)
There are obviously more fixes needed, potentialy all places where
request.getContextPath is used
An other unresolved bug related is in LogFilter, where %p
is associated with req.getServletPath();
Regards, Stefan
p.s. the quick fixes
Index: webdav/server/org/apache/slide/webdav/method/AbstractWebdavMethod.java
===================================================================
RCS file: /home/cvspublic/jakarta-slide/src/webdav/server/org/apache/slide/webdav/method/AbstractWebdavMethod.java,v
retrieving revision 1.16
diff -r1.16 AbstractWebdavMethod.java
392a393,404
> /**
> * Returns URI prefix that qualifies the WebADV Servlet.
> *
> * @return the prefix that makes a Slide-URI to an HTTP URI.
> */
> public String getFullServletPath() {
> if (config.isDefaultServlet()) {
> return req.getContextPath();
> } else {
> return req.getContextPath() + req.getServletPath();
> }
> }
399,403c411,419
<
< if (path.startsWith("/"))
< return WebdavUtils.encodeURL(req.getContextPath() + path);
< else
< return WebdavUtils.encodeURL(req.getContextPath() + "/" + path);
---
> StringBuffer result = new StringBuffer(req.getContextPath());
> if (!config.isDefaultServlet()) {
> result.append(req.getServletPath());
> }
> if (!path.startsWith("/")) {
> result.append("/");
> }
> result.append(path);
> return WebdavUtils.encodeURL(result.toString());
Index: webdav/server/org/apache/slide/webdav/method/LockMethod.java
===================================================================
RCS file: /home/cvspublic/jakarta-slide/src/webdav/server/org/apache/slide/webdav/method/LockMethod.java,v
retrieving revision 1.51
diff -r1.51 LockMethod.java
633c633
< \
req.getContextPath());
---
> getFullServletPath());
Index: webdav/server/org/apache/slide/webdav/method/PropFindMethod.java
===================================================================
RCS file: /home/cvspublic/jakarta-slide/src/webdav/server/org/apache/slide/webdav/method/PropFindMethod.java,v
retrieving revision 1.92
diff -r1.92 PropFindMethod.java
537c537,543
< List propstatList= \
propertyRetriever.getPropertiesOfObject(requestedProperties, revisionDescriptors, \
revisionDescriptor, req.getContextPath(), serverURL, \
extendedAllprop);
---
> List propstatList= propertyRetriever.getPropertiesOfObject(
> requestedProperties,
> revisionDescriptors,
> revisionDescriptor,
> getFullServletPath(),
> serverURL,
> extendedAllprop);
606,609c612,615
< req.getServerName()+ ":" +
< req.getServerPort() +
< req.getContextPath() +
< resourcePath);
---
> req.getServerName()+ ":" +
> req.getServerPort() +
> getFullServletPath() +
> resourcePath);
Index: webdav/server/org/apache/slide/webdav/util/DirectoryIndexGenerator.java
===================================================================
RCS file: /home/cvspublic/jakarta-slide/src/webdav/server/org/apache/slide/webdav/util/DirectoryIndexGenerator.java,v
retrieving revision 1.4
diff -r1.4 DirectoryIndexGenerator.java
249,252c249,250
< writer.print(WebdavUtils.encodeURL(contextPath, "UTF-8"));
< if (parentDirectory.equals(""))
< parentDirectory = "/";
< writer.print(parentDirectory); // I18N chars
---
> writer.print(WebdavUtils.getAbsolutePath(parentDirectory,
> req, this.config));
348c346,347
< writer.print(WebdavUtils.encodeURL(contextPath + \
currentResource.substring(scope.length())));
---
> writer.print(WebdavUtils.getAbsolutePath(
> currentResource,req, this.config));
--
+--------------------------------------------+
> >
> Stefan Lützkendorf |
> >
> Institut für Terminologie und |
> angewandte Wissensforschung (itaw) GmbH |
> >
> Sitz: Am Köllnischen Park 6/7 |
> D-10179 Berlin |
> Mail: luetzken@itaw.hu-berlin.de |
> Tel.: ++49 (030) 30 86 20 88 |
> >
+--------------------------------------------+
---------------------------------------------------------------------
To unsubscribe, e-mail: slide-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: slide-dev-help@jakarta.apache.org
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic