cvs commit: jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/servlets WebdavServlet.java
markt 2004/02/25 14:38:14 Modified:catalina/src/share/org/apache/catalina/servlets WebdavServlet.java Log: Fix bug 27190. Ensure webdav servlet returns correct status in response to MOVE request. Ported from TC5. Revision ChangesPath 1.35 +13 -12 jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/servlets/WebdavServlet.java Index: WebdavServlet.java === RCS file: /home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/servlets/WebdavServlet.java,v retrieving revision 1.34 retrieving revision 1.35 diff -u -r1.34 -r1.35 --- WebdavServlet.java22 Feb 2004 22:35:35 - 1.34 +++ WebdavServlet.java25 Feb 2004 22:38:14 - 1.35 @@ -819,7 +819,7 @@ String path = getRelativePath(req); if (copyResource(req, resp)) { -deleteResource(path, req, resp); +deleteResource(path, req, resp, false); } } @@ -1618,10 +1618,8 @@ // Delete destination resource, if it exists if (exists) { -if (!deleteResource(destinationPath, req, resp)) { +if (!deleteResource(destinationPath, req, resp, true)) { return false; -} else { -resp.setStatus(WebdavStatus.SC_NO_CONTENT); } } else { resp.setStatus(WebdavStatus.SC_CREATED); @@ -1749,7 +1747,7 @@ String path = getRelativePath(req); -return deleteResource(path, req, resp); +return deleteResource(path, req, resp, true); } @@ -1760,9 +1758,11 @@ * @param path Path of the resource which is to be deleted * @param req Servlet request * @param resp Servlet response + * @param setStatus Should the response status be set on successful + * completion */ private boolean deleteResource(String path, HttpServletRequest req, - HttpServletResponse resp) + HttpServletResponse resp, boolean setStatus) throws ServletException, IOException { if ((path.toUpperCase().startsWith(/WEB-INF)) || @@ -1834,8 +1834,9 @@ } } - -resp.setStatus(WebdavStatus.SC_NO_CONTENT); +if (setStatus) { +resp.setStatus(WebdavStatus.SC_NO_CONTENT); +} return true; } - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
cvs commit: jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/servlets WebdavServlet.java
markt 2004/02/22 14:35:35 Modified:catalina/src/share/org/apache/catalina/servlets WebdavServlet.java Log: Fix bug 27100. - Remove lock obsfucation functionality as it breaks a number of webdav clients and does not appear to be covered by the webdav spec. - Reported by Ryan Dewell. - Ported from TC5. Revision ChangesPath 1.34 +9 -24 jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/servlets/WebdavServlet.java Index: WebdavServlet.java === RCS file: /home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/servlets/WebdavServlet.java,v retrieving revision 1.33 retrieving revision 1.34 diff -u -r1.33 -r1.34 --- WebdavServlet.java13 Feb 2004 22:21:04 - 1.33 +++ WebdavServlet.java22 Feb 2004 22:35:35 - 1.34 @@ -1298,7 +1298,7 @@ generatedXML.writeElement(null, lockdiscovery, XMLWriter.OPENING); -lock.toXML(generatedXML, true); +lock.toXML(generatedXML); generatedXML.writeElement(null, lockdiscovery, XMLWriter.CLOSING); @@ -2703,15 +2703,6 @@ * append an XML fragment to the given XML writer. */ public void toXML(XMLWriter generatedXML) { -toXML(generatedXML, false); -} - - -/** - * Get an XML representation of this lock token. This method will - * append an XML fragment to the given XML writer. - */ -public void toXML(XMLWriter generatedXML, boolean showToken) { generatedXML.writeElement(null, activelock, XMLWriter.OPENING); @@ -2741,17 +2732,11 @@ generatedXML.writeElement(null, timeout, XMLWriter.CLOSING); generatedXML.writeElement(null, locktoken, XMLWriter.OPENING); -if (showToken) { -Enumeration tokensList = tokens.elements(); -while (tokensList.hasMoreElements()) { -generatedXML.writeElement(null, href, XMLWriter.OPENING); -generatedXML.writeText(opaquelocktoken: - + tokensList.nextElement()); -generatedXML.writeElement(null, href, XMLWriter.CLOSING); -} -} else { +Enumeration tokensList = tokens.elements(); +while (tokensList.hasMoreElements()) { generatedXML.writeElement(null, href, XMLWriter.OPENING); -generatedXML.writeText(opaquelocktoken:dummytoken); +generatedXML.writeText(opaquelocktoken: + + tokensList.nextElement()); generatedXML.writeElement(null, href, XMLWriter.CLOSING); } generatedXML.writeElement(null, locktoken, XMLWriter.CLOSING); - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
cvs commit: jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/servlets WebdavServlet.java
markt 2004/02/13 12:11:12 Modified:catalina/src/share/org/apache/catalina/servlets WebdavServlet.java Log: Fix bug 26906. - The destination path needs to be normalised after the protocol and host has been removed (if present). - Reported by rsudharsan - Ported from TC5 Revision ChangesPath 1.32 +9 -6 jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/servlets/WebdavServlet.java Index: WebdavServlet.java === RCS file: /home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/servlets/WebdavServlet.java,v retrieving revision 1.31 retrieving revision 1.32 diff -u -r1.31 -r1.32 --- WebdavServlet.java22 Dec 2003 12:38:54 - 1.31 +++ WebdavServlet.java13 Feb 2004 20:11:12 - 1.32 @@ -1504,8 +1504,8 @@ return false; } -destinationPath = -normalize(RequestUtil.URLDecode(destinationPath, UTF8)); +// Remove url encoding from destination +destinationPath = RequestUtil.URLDecode(destinationPath, UTF8); int protocolIndex = destinationPath.indexOf(://); if (protocolIndex = 0) { @@ -1539,6 +1539,9 @@ } } } + +// Normalise destination path (remove '.' and '..') +destinationPath = normalize(destinationPath); String contextPath = req.getContextPath(); if ((contextPath != null) - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
cvs commit: jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/servlets WebdavServlet.java
markt 2004/02/13 14:21:04 Modified:catalina/src/share/org/apache/catalina/servlets WebdavServlet.java Log: Fix bug 26906. - Lock token must be returned after lock creation. - Patch provided by Pieter van Prooijen - Port from TC5 Revision ChangesPath 1.33 +8 -5 jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/servlets/WebdavServlet.java Index: WebdavServlet.java === RCS file: /home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/servlets/WebdavServlet.java,v retrieving revision 1.32 retrieving revision 1.33 diff -u -r1.32 -r1.33 --- WebdavServlet.java13 Feb 2004 20:11:12 - 1.32 +++ WebdavServlet.java13 Feb 2004 22:21:04 - 1.33 @@ -1231,7 +1231,10 @@ lockNulls.addElement(lock.path); } - +// Add the Lock-Token header as by RFC 2518 8.10.1 +// - only do this for newly created locks +resp.addHeader(Lock-Token, opaquelocktoken: + + lockToken + ); } } - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
cvs commit: jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/servlets WebdavServlet.java
markt 2003/12/10 13:36:05 Modified:catalina/src/share/org/apache/catalina/servlets WebdavServlet.java Log: - Fix bug 23999, 24001, 24005 Revision ChangesPath 1.30 +122 -96 jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/servlets/WebdavServlet.java Index: WebdavServlet.java === RCS file: /home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/servlets/WebdavServlet.java,v retrieving revision 1.29 retrieving revision 1.30 diff -u -r1.29 -r1.30 --- WebdavServlet.java6 Oct 2003 12:24:01 - 1.29 +++ WebdavServlet.java10 Dec 2003 21:36:05 - 1.30 @@ -65,60 +65,39 @@ package org.apache.catalina.servlets; -import java.io.BufferedInputStream; -import java.io.File; -import java.io.FileInputStream; -import java.io.InputStream; import java.io.IOException; -import java.io.PrintWriter; import java.io.StringWriter; import java.io.Writer; -import java.net.MalformedURLException; -import java.net.URL; -import java.sql.Timestamp; +import java.text.SimpleDateFormat; import java.util.Date; import java.util.Enumeration; -import java.util.Vector; -import java.util.Stack; -import java.util.StringTokenizer; -import java.util.Locale; import java.util.Hashtable; -import java.util.Calendar; +import java.util.Stack; import java.util.TimeZone; -import java.text.ParseException; -import java.text.SimpleDateFormat; -import java.security.MessageDigest; -import java.security.NoSuchAlgorithmException; -import org.w3c.dom.Node; -import org.w3c.dom.NodeList; -import org.w3c.dom.Element; -import org.w3c.dom.Document; -import org.xml.sax.InputSource; -import javax.servlet.RequestDispatcher; +import java.util.Vector; + +import javax.naming.NameClassPair; +import javax.naming.NamingEnumeration; +import javax.naming.NamingException; +import javax.naming.directory.DirContext; import javax.servlet.ServletException; -import javax.servlet.ServletContext; -import javax.servlet.ServletOutputStream; -import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.xml.parsers.DocumentBuilder; import javax.xml.parsers.DocumentBuilderFactory; import javax.xml.parsers.ParserConfigurationException; -import javax.naming.NamingException; -import javax.naming.InitialContext; -import javax.naming.Context; -import javax.naming.NamingEnumeration; -import javax.naming.NameClassPair; -import javax.naming.directory.DirContext; -import javax.naming.directory.Attribute; -import javax.naming.directory.Attributes; -import org.apache.naming.resources.Resource; -import org.apache.naming.resources.ResourceAttributes; -import org.apache.catalina.util.MD5Encoder; -import org.apache.catalina.util.StringManager; -import org.apache.catalina.util.XMLWriter; + import org.apache.catalina.util.DOMWriter; import org.apache.catalina.util.RequestUtil; +import org.apache.catalina.util.XMLWriter; +import org.apache.naming.resources.Resource; +import org.apache.tomcat.util.http.FastHttpDateFormat; +import org.w3c.dom.Document; +import org.w3c.dom.Element; +import org.w3c.dom.Node; +import org.w3c.dom.NodeList; +import org.xml.sax.InputSource; +import org.xml.sax.SAXException; /** @@ -134,7 +113,7 @@ // -- Constants - + private static final String METHOD_HEAD = HEAD; private static final String METHOD_PROPFIND = PROPFIND; @@ -359,11 +338,8 @@ protected void doOptions(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { -String path = getRelativePath(req); - resp.addHeader(DAV, 1,2); -String methodsAllowed = null; - + // Retrieve the resources DirContext resources = getResources(); @@ -372,28 +348,10 @@ return; } -boolean exists = true; -Object object = null; -try { -object = resources.lookup(path); -} catch (NamingException e) { -exists = false; -} - -if (!exists) { -methodsAllowed = OPTIONS, MKCOL, PUT, LOCK; -resp.addHeader(Allow, methodsAllowed); -return; -} - -methodsAllowed = OPTIONS, GET, HEAD, POST, DELETE, TRACE, -+ PROPFIND, PROPPATCH, COPY, MOVE, LOCK, UNLOCK; -if (!(object instanceof DirContext)) { -methodsAllowed += , PUT; -} - -resp.addHeader(Allow, methodsAllowed); +StringBuffer methodsAllowed = determineMethodsAllowed(resources, +
cvs commit: jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/servlets WebdavServlet.java
remm2003/10/06 05:24:01 Modified:catalina/src/share/org/apache/catalina/servlets WebdavServlet.java Log: - Port patch. - Fix normalization of the destination path. Revision ChangesPath 1.29 +7 -7 jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/servlets/WebdavServlet.java Index: WebdavServlet.java === RCS file: /home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/servlets/WebdavServlet.java,v retrieving revision 1.28 retrieving revision 1.29 diff -u -r1.28 -r1.29 --- WebdavServlet.java1 Apr 2002 18:12:38 - 1.28 +++ WebdavServlet.java6 Oct 2003 12:24:01 - 1.29 @@ -1509,6 +1509,9 @@ return false; } +destinationPath = +normalize(RequestUtil.URLDecode(destinationPath, UTF8)); + int protocolIndex = destinationPath.indexOf(://); if (protocolIndex = 0) { // if the Destination URL contains the protocol, we can safely @@ -1557,9 +1560,6 @@ .substring(servletPath.length()); } } - -destinationPath = -RequestUtil.URLDecode(normalize(destinationPath), UTF8); if (debug 0) System.out.println(Dest path : + destinationPath); - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
cvs commit: jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/servlets WebdavServlet.java
remm02/04/01 10:12:39 Modified:catalina/src/share/org/apache/catalina/servlets WebdavServlet.java Log: - Avoid doing unecessary lists operations. - Patch submitted by Ewout Prangsma e.prangsma at daisysoftware.com. Revision ChangesPath 1.28 +25 -24 jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/servlets/WebdavServlet.java Index: WebdavServlet.java === RCS file: /home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/servlets/WebdavServlet.java,v retrieving revision 1.27 retrieving revision 1.28 diff -u -r1.27 -r1.28 --- WebdavServlet.java9 Mar 2002 23:22:38 - 1.27 +++ WebdavServlet.java1 Apr 2002 18:12:38 - 1.28 @@ -1,7 +1,7 @@ /* - * $Header: /home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/servlets/WebdavServlet.java,v 1.27 2002/03/09 23:22:38 remm Exp $ - * $Revision: 1.27 $ - * $Date: 2002/03/09 23:22:38 $ + * $Header: /home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/servlets/WebdavServlet.java,v 1.28 2002/04/01 18:12:38 remm Exp $ + * $Revision: 1.28 $ + * $Date: 2002/04/01 18:12:38 $ * * * @@ -126,7 +126,7 @@ * are handled by the DefaultServlet. * * @author Remy Maucherat - * @version $Revision: 1.27 $ $Date: 2002/03/09 23:22:38 $ + * @version $Revision: 1.28 $ $Date: 2002/04/01 18:12:38 $ */ public class WebdavServlet @@ -591,7 +591,9 @@ } catch (NamingException e) { continue; } -if (object instanceof DirContext) { + +if ((object instanceof DirContext) (depth 0)) { + try { NamingEnumeration enum = resources.list(currentPath); while (enum.hasMoreElements()) { @@ -610,27 +612,26 @@ return; } -if (depth 0) { -// Displaying the lock-null resources present in that -// collection -String lockPath = currentPath; -if (lockPath.endsWith(/)) -lockPath = -lockPath.substring(0, lockPath.length() - 1); -Vector currentLockNullResources = -(Vector) lockNullResources.get(lockPath); -if (currentLockNullResources != null) { -Enumeration lockNullResourcesList = -currentLockNullResources.elements(); -while (lockNullResourcesList.hasMoreElements()) { -String lockNullPath = (String) -lockNullResourcesList.nextElement(); -parseLockNullProperties -(req, generatedXML, lockNullPath, type, - properties); -} +// Displaying the lock-null resources present in that +// collection +String lockPath = currentPath; +if (lockPath.endsWith(/)) +lockPath = +lockPath.substring(0, lockPath.length() - 1); +Vector currentLockNullResources = +(Vector) lockNullResources.get(lockPath); +if (currentLockNullResources != null) { +Enumeration lockNullResourcesList = +currentLockNullResources.elements(); +while (lockNullResourcesList.hasMoreElements()) { +String lockNullPath = (String) +lockNullResourcesList.nextElement(); +parseLockNullProperties +(req, generatedXML, lockNullPath, type, + properties); } } + } if (stack.isEmpty()) { -- To unsubscribe, e-mail: mailto:[EMAIL PROTECTED] For additional commands, e-mail: mailto:[EMAIL PROTECTED]
cvs commit: jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/servlets WebdavServlet.java
remm02/04/01 10:17:43 Modified:catalina/src/share/org/apache/catalina/servlets Tag: tomcat_40_branch WebdavServlet.java Log: - Avoid doing unecessary lists operations. - Patch submitted by Ewout Prangsma e.prangsma at daisysoftware.com. Revision ChangesPath No revision No revision 1.25.2.2 +25 -24 jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/servlets/WebdavServlet.java Index: WebdavServlet.java === RCS file: /home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/servlets/WebdavServlet.java,v retrieving revision 1.25.2.1 retrieving revision 1.25.2.2 diff -u -r1.25.2.1 -r1.25.2.2 --- WebdavServlet.java3 Jan 2002 10:44:32 - 1.25.2.1 +++ WebdavServlet.java1 Apr 2002 18:17:43 - 1.25.2.2 @@ -1,7 +1,7 @@ /* - * $Header: /home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/servlets/WebdavServlet.java,v 1.25.2.1 2002/01/03 10:44:32 remm Exp $ - * $Revision: 1.25.2.1 $ - * $Date: 2002/01/03 10:44:32 $ + * $Header: /home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/servlets/WebdavServlet.java,v 1.25.2.2 2002/04/01 18:17:43 remm Exp $ + * $Revision: 1.25.2.2 $ + * $Date: 2002/04/01 18:17:43 $ * * * @@ -126,7 +126,7 @@ * are handled by the DefaultServlet. * * @author Remy Maucherat - * @version $Revision: 1.25.2.1 $ $Date: 2002/01/03 10:44:32 $ + * @version $Revision: 1.25.2.2 $ $Date: 2002/04/01 18:17:43 $ */ public class WebdavServlet @@ -591,7 +591,9 @@ } catch (NamingException e) { continue; } -if (object instanceof DirContext) { + +if ((object instanceof DirContext) (depth 0)) { + try { NamingEnumeration enum = resources.list(currentPath); while (enum.hasMoreElements()) { @@ -610,27 +612,26 @@ return; } -if (depth 0) { -// Displaying the lock-null resources present in that -// collection -String lockPath = currentPath; -if (lockPath.endsWith(/)) -lockPath = -lockPath.substring(0, lockPath.length() - 1); -Vector currentLockNullResources = -(Vector) lockNullResources.get(lockPath); -if (currentLockNullResources != null) { -Enumeration lockNullResourcesList = -currentLockNullResources.elements(); -while (lockNullResourcesList.hasMoreElements()) { -String lockNullPath = (String) -lockNullResourcesList.nextElement(); -parseLockNullProperties -(req, generatedXML, lockNullPath, type, - properties); -} +// Displaying the lock-null resources present in that +// collection +String lockPath = currentPath; +if (lockPath.endsWith(/)) +lockPath = +lockPath.substring(0, lockPath.length() - 1); +Vector currentLockNullResources = +(Vector) lockNullResources.get(lockPath); +if (currentLockNullResources != null) { +Enumeration lockNullResourcesList = +currentLockNullResources.elements(); +while (lockNullResourcesList.hasMoreElements()) { +String lockNullPath = (String) +lockNullResourcesList.nextElement(); +parseLockNullProperties +(req, generatedXML, lockNullPath, type, + properties); } } + } if (stack.isEmpty()) { -- To unsubscribe, e-mail: mailto:[EMAIL PROTECTED] For additional commands, e-mail: mailto:[EMAIL PROTECTED]
cvs commit: jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/servlets WebdavServlet.java
remm01/09/14 09:45:33 Modified:catalina/src/share/org/apache/catalina/servlets WebdavServlet.java Log: - Forgot to backport some code from Slide. - Now, the protocol name is not hardcoded when parsing a destination header, so it fixes problems when using https. The parsing code is also more robust. - Fixes bug 3613. Revision ChangesPath 1.25 +33 -13 jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/servlets/WebdavServlet.java Index: WebdavServlet.java === RCS file: /home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/servlets/WebdavServlet.java,v retrieving revision 1.24 retrieving revision 1.25 diff -u -r1.24 -r1.25 --- WebdavServlet.java2001/09/07 05:48:30 1.24 +++ WebdavServlet.java2001/09/14 16:45:33 1.25 @@ -1,7 +1,7 @@ /* - * $Header: /home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/servlets/WebdavServlet.java,v 1.24 2001/09/07 05:48:30 remm Exp $ - * $Revision: 1.24 $ - * $Date: 2001/09/07 05:48:30 $ + * $Header: /home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/servlets/WebdavServlet.java,v 1.25 2001/09/14 16:45:33 remm Exp $ + * $Revision: 1.25 $ + * $Date: 2001/09/14 16:45:33 $ * * * @@ -126,7 +126,7 @@ * are handled by the DefaultServlet. * * @author Remy Maucherat - * @version $Revision: 1.24 $ $Date: 2001/09/07 05:48:30 $ + * @version $Revision: 1.25 $ $Date: 2001/09/14 16:45:33 $ */ public class WebdavServlet @@ -1498,21 +1498,41 @@ String destinationPath = req.getHeader(Destination); -if (destinationPath.startsWith(http://;)) { -destinationPath = destinationPath.substring(http://.length()); -} - -String hostName = req.getServerName(); -if ((hostName != null) (destinationPath.startsWith(hostName))) { -destinationPath = destinationPath.substring(hostName.length()); +if (destinationPath == null) { +resp.sendError(WebdavStatus.SC_BAD_REQUEST); +return false; } -if (destinationPath.startsWith(:)) { -int firstSeparator = destinationPath.indexOf('/'); +int protocolIndex = destinationPath.indexOf(://); +if (protocolIndex = 0) { +// if the Destination URL contains the protocol, we can safely +// trim everything upto the first / character after :// +int firstSeparator = +destinationPath.indexOf(/, protocolIndex + 4); if (firstSeparator 0) { destinationPath = /; } else { destinationPath = destinationPath.substring(firstSeparator); +} +} else { +String hostName = req.getServerName(); +if ((hostName != null) (destinationPath.startsWith(hostName))) { +destinationPath = destinationPath.substring(hostName.length()); +} + +int portIndex = destinationPath.indexOf(:); +if (portIndex = 0) { +destinationPath = destinationPath.substring(portIndex); +} + +if (destinationPath.startsWith(:)) { +int firstSeparator = destinationPath.indexOf(/); +if (firstSeparator 0) { +destinationPath = /; +} else { +destinationPath = +destinationPath.substring(firstSeparator); +} } }
cvs commit: jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/servlets WebdavServlet.java
remm01/09/06 22:48:30 Modified:catalina/src/share/org/apache/catalina/servlets WebdavServlet.java Log: - Return 405 (method not allowed) in response to a PROPPATCH request. - Bug reported by Vijaya Kumar vijayakumar.ellappan at businex.com. Revision ChangesPath 1.24 +5 -6 jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/servlets/WebdavServlet.java Index: WebdavServlet.java === RCS file: /home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/servlets/WebdavServlet.java,v retrieving revision 1.23 retrieving revision 1.24 diff -u -r1.23 -r1.24 --- WebdavServlet.java2001/07/25 01:07:25 1.23 +++ WebdavServlet.java2001/09/07 05:48:30 1.24 @@ -1,7 +1,7 @@ /* - * $Header: /home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/servlets/WebdavServlet.java,v 1.23 2001/07/25 01:07:25 remm Exp $ - * $Revision: 1.23 $ - * $Date: 2001/07/25 01:07:25 $ + * $Header: /home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/servlets/WebdavServlet.java,v 1.24 2001/09/07 05:48:30 remm Exp $ + * $Revision: 1.24 $ + * $Date: 2001/09/07 05:48:30 $ * * * @@ -126,7 +126,7 @@ * are handled by the DefaultServlet. * * @author Remy Maucherat - * @version $Revision: 1.23 $ $Date: 2001/07/25 01:07:25 $ + * @version $Revision: 1.24 $ $Date: 2001/09/07 05:48:30 $ */ public class WebdavServlet @@ -669,8 +669,7 @@ return; } - - +resp.sendError(HttpServletResponse.SC_METHOD_NOT_ALLOWED); }
cvs commit: jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/servlets WebdavServlet.java
remm01/07/24 18:07:26 Modified:catalina/src/share/org/apache/catalina/servlets WebdavServlet.java Log: - An instance of DocumentBuilderFactory is not thread safe, so we cannot keep a reference to one in the servlet instance. Revision ChangesPath 1.23 +23 -26 jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/servlets/WebdavServlet.java Index: WebdavServlet.java === RCS file: /home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/servlets/WebdavServlet.java,v retrieving revision 1.22 retrieving revision 1.23 diff -u -r1.22 -r1.23 --- WebdavServlet.java2001/07/24 01:30:59 1.22 +++ WebdavServlet.java2001/07/25 01:07:25 1.23 @@ -1,7 +1,7 @@ /* - * $Header: /home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/servlets/WebdavServlet.java,v 1.22 2001/07/24 01:30:59 remm Exp $ - * $Revision: 1.22 $ - * $Date: 2001/07/24 01:30:59 $ + * $Header: /home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/servlets/WebdavServlet.java,v 1.23 2001/07/25 01:07:25 remm Exp $ + * $Revision: 1.23 $ + * $Date: 2001/07/25 01:07:25 $ * * * @@ -126,7 +126,7 @@ * are handled by the DefaultServlet. * * @author Remy Maucherat - * @version $Revision: 1.22 $ $Date: 2001/07/24 01:30:59 $ + * @version $Revision: 1.23 $ $Date: 2001/07/25 01:07:25 $ */ public class WebdavServlet @@ -216,12 +216,6 @@ /** - * JAXP Document builder factory. - */ -private DocumentBuilderFactory documentBuilderFactory; - - -/** * Repository of the locks put on single resources. * p * Key : path br @@ -276,8 +270,6 @@ ; } -documentBuilderFactory = DocumentBuilderFactory.newInstance(); - } @@ -285,6 +277,23 @@ /** + * Return JAXP document builder instance. + */ +protected DocumentBuilder getDocumentBuilder() +throws ServletException { +DocumentBuilder documentBuilder = null; +try { +documentBuilder = +DocumentBuilderFactory.newInstance().newDocumentBuilder(); +} catch(ParserConfigurationException e) { +throw new ServletException +(sm.getString(webdavservlet.jaxpfailed)); +} +return documentBuilder; +} + + +/** * Handles the special WebDAV methods. */ protected void service(HttpServletRequest req, HttpServletResponse resp) @@ -434,13 +443,7 @@ Node propNode = null; -DocumentBuilder documentBuilder = null; -try { -documentBuilder = documentBuilderFactory.newDocumentBuilder(); -} catch(ParserConfigurationException e) { -throw new ServletException -(sm.getString(webdavservlet.jaxpfailed)); -} +DocumentBuilder documentBuilder = getDocumentBuilder(); try { Document document = documentBuilder.parse @@ -896,13 +899,7 @@ Node lockInfoNode = null; -DocumentBuilder documentBuilder = null; -try { -documentBuilder = documentBuilderFactory.newDocumentBuilder(); -} catch(ParserConfigurationException e) { -throw new ServletException -(sm.getString(webdavservlet.jaxpfailed)); -} +DocumentBuilder documentBuilder = getDocumentBuilder(); try { Document document = documentBuilder.parse(new InputSource
cvs commit: jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/servlets WebdavServlet.java
remm01/07/22 23:27:40 Modified:catalina/src/share/org/apache/catalina/servlets WebdavServlet.java Log: - Decode destination header (was previously handled by normalize). Revision ChangesPath 1.21 +7 -5 jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/servlets/WebdavServlet.java Index: WebdavServlet.java === RCS file: /home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/servlets/WebdavServlet.java,v retrieving revision 1.20 retrieving revision 1.21 diff -u -r1.20 -r1.21 --- WebdavServlet.java2001/07/22 20:25:11 1.20 +++ WebdavServlet.java2001/07/23 06:27:40 1.21 @@ -1,7 +1,7 @@ /* - * $Header: /home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/servlets/WebdavServlet.java,v 1.20 2001/07/22 20:25:11 pier Exp $ - * $Revision: 1.20 $ - * $Date: 2001/07/22 20:25:11 $ + * $Header: /home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/servlets/WebdavServlet.java,v 1.21 2001/07/23 06:27:40 remm Exp $ + * $Revision: 1.21 $ + * $Date: 2001/07/23 06:27:40 $ * * * @@ -118,6 +118,7 @@ import org.apache.catalina.util.StringManager; import org.apache.catalina.util.XMLWriter; import org.apache.catalina.util.DOMWriter; +import org.apache.catalina.util.RequestUtil; /** @@ -125,7 +126,7 @@ * are handled by the DefaultServlet. * * @author Remy Maucherat - * @version $Revision: 1.20 $ $Date: 2001/07/22 20:25:11 $ + * @version $Revision: 1.21 $ $Date: 2001/07/23 06:27:40 $ */ public class WebdavServlet @@ -1497,7 +1498,8 @@ } } -destinationPath = normalize(destinationPath); +destinationPath = +RequestUtil.URLDecode(normalize(destinationPath), UTF8); if (debug 0) System.out.println(Dest path : + destinationPath);
cvs commit: jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/servlets WebdavServlet.java
remm01/04/10 19:37:12 Modified:catalina/src/share/org/apache/catalina/servlets WebdavServlet.java Log: - Tighten up more on /WEB-INF (I forgot to add a check for MKCOL). - Set content type to use a UTF-8 charset (as is advertised in the XML header). - Return human readable values for the displayname property. Revision ChangesPath 1.18 +33 -10 jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/servlets/WebdavServlet.java Index: WebdavServlet.java === RCS file: /home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/servlets/WebdavServlet.java,v retrieving revision 1.17 retrieving revision 1.18 diff -u -r1.17 -r1.18 --- WebdavServlet.java2001/04/06 02:45:48 1.17 +++ WebdavServlet.java2001/04/11 02:37:12 1.18 @@ -1,7 +1,7 @@ /* - * $Header: /home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/servlets/WebdavServlet.java,v 1.17 2001/04/06 02:45:48 remm Exp $ - * $Revision: 1.17 $ - * $Date: 2001/04/06 02:45:48 $ + * $Header: /home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/servlets/WebdavServlet.java,v 1.18 2001/04/11 02:37:12 remm Exp $ + * $Revision: 1.18 $ + * $Date: 2001/04/11 02:37:12 $ * * * @@ -125,7 +125,7 @@ * are handled by the DefaultServlet. * * @author Remy Maucherat - * @version $Revision: 1.17 $ $Date: 2001/04/06 02:45:48 $ + * @version $Revision: 1.18 $ $Date: 2001/04/11 02:37:12 $ */ public class WebdavServlet @@ -402,6 +402,12 @@ String path = getRelativePath(req); +if ((path.toUpperCase().startsWith("/WEB-INF")) || +(path.toUpperCase().startsWith("/META-INF"))) { +resp.sendError(WebdavStatus.SC_FORBIDDEN); +return; +} + // Properties which are to be displayed. Vector properties = null; // Propfind depth @@ -514,6 +520,8 @@ resp.setStatus(WebdavStatus.SC_MULTI_STATUS); +resp.setContentType("text/xml; charset=UTF-8"); + // Create multistatus object XMLWriter generatedXML = new XMLWriter(resp.getWriter()); generatedXML.writeXMLHeader(); @@ -621,6 +629,7 @@ + } @@ -642,6 +651,12 @@ String path = getRelativePath(req); +if ((path.toUpperCase().startsWith("/WEB-INF")) || +(path.toUpperCase().startsWith("/META-INF"))) { +resp.sendError(WebdavStatus.SC_FORBIDDEN); +return; +} + // Retrieve the resources DirContext resources = getResources(); @@ -1251,6 +1266,7 @@ generatedXML.writeElement(null, "prop", XMLWriter.CLOSING); resp.setStatus(WebdavStatus.SC_OK); +resp.setContentType("text/xml; charset=UTF-8"); Writer writer = resp.getWriter(); writer.write(generatedXML.toString()); writer.close(); @@ -1941,6 +1957,11 @@ generatedXML.writeElement(null, "href", XMLWriter.CLOSING); +String resourceName = path; +int lastSlash = path.lastIndexOf('/'); +if (lastSlash != -1) +resourceName = resourceName.substring(lastSlash + 1); + switch (type) { case FIND_ALL_PROP : @@ -1951,9 +1972,9 @@ generatedXML.writeProperty (null, "creationdate", getISOCreationDate(resourceInfo.creationDate)); -generatedXML.writeProperty -(null, "displayname", - rewriteUrl(resourceInfo.path.replace('/', '_'))); +generatedXML.writeElement(null, "displayname", XMLWriter.OPENING); +generatedXML.writeData(resourceName); +generatedXML.writeElement(null, "displayname", XMLWriter.CLOSING); generatedXML.writeProperty(null, "getcontentlanguage", Locale.getDefault().toString()); if (!resourceInfo.collection) { @@ -2058,9 +2079,11 @@ (null, "creationdate", getISOCreationDate(resourceInfo.creationDate)); } else if (property.equals("displayname")) { -generatedXML.writeProperty -(null, "displayname", - rewriteUrl(resourceInfo.path.replace('/', '_'))); +generatedXML.writeElement +(null, "displayname", XMLWriter.OPENING); +
cvs commit: jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/servlets WebdavServlet.java
remm01/04/05 12:03:09 Modified:catalina/src/share/org/apache/catalina/servlets WebdavServlet.java Log: - Prevent COPY method from manipulating anything in /WEB-INF or /META-INF. Note : That could only happen when a user had red/write access on the context. Revision ChangesPath 1.16 +18 -4 jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/servlets/WebdavServlet.java Index: WebdavServlet.java === RCS file: /home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/servlets/WebdavServlet.java,v retrieving revision 1.15 retrieving revision 1.16 diff -u -r1.15 -r1.16 --- WebdavServlet.java2001/04/05 18:55:02 1.15 +++ WebdavServlet.java2001/04/05 19:03:08 1.16 @@ -1,7 +1,7 @@ /* - * $Header: /home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/servlets/WebdavServlet.java,v 1.15 2001/04/05 18:55:02 remm Exp $ - * $Revision: 1.15 $ - * $Date: 2001/04/05 18:55:02 $ + * $Header: /home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/servlets/WebdavServlet.java,v 1.16 2001/04/05 19:03:08 remm Exp $ + * $Revision: 1.16 $ + * $Date: 2001/04/05 19:03:08 $ * * * @@ -125,7 +125,7 @@ * are handled by the DefaultServlet. * * @author Remy Maucherat - * @version $Revision: 1.15 $ $Date: 2001/04/05 18:55:02 $ + * @version $Revision: 1.16 $ $Date: 2001/04/05 19:03:08 $ */ public class WebdavServlet @@ -1481,10 +1481,24 @@ } } +destinationPath = normalize(destinationPath); + if (debug 0) System.out.println("Dest path :" + destinationPath); +if ((destinationPath.toUpperCase().startsWith("/WEB-INF")) || +(destinationPath.toUpperCase().startsWith("/META-INF"))) { +resp.sendError(WebdavStatus.SC_FORBIDDEN); +return false; +} + String path = getRelativePath(req); + +if ((path.toUpperCase().startsWith("/WEB-INF")) || +(path.toUpperCase().startsWith("/META-INF"))) { +resp.sendError(WebdavStatus.SC_FORBIDDEN); +return false; +} if (destinationPath.equals(path)) { resp.sendError(WebdavStatus.SC_FORBIDDEN);
cvs commit: jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/servlets WebdavServlet.java
remm01/04/04 11:23:08 Modified:catalina/src/share/org/apache/catalina/servlets WebdavServlet.java Log: - Fix thread safety problems with the WebDAV servlet. The problem was that the JAXP document builder was not thread safe. Now, a new instance will be created on each request. The problem was reported and fixed by Juergen Pill in Slide, but I forgot to backport the fix (sorry ...), and it was reported again by Max du Prel mduprel at leveld.de Revision ChangesPath 1.14 +23 -13 jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/servlets/WebdavServlet.java Index: WebdavServlet.java === RCS file: /home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/servlets/WebdavServlet.java,v retrieving revision 1.13 retrieving revision 1.14 diff -u -r1.13 -r1.14 --- WebdavServlet.java2001/03/06 02:27:44 1.13 +++ WebdavServlet.java2001/04/04 18:23:06 1.14 @@ -1,7 +1,7 @@ /* - * $Header: /home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/servlets/WebdavServlet.java,v 1.13 2001/03/06 02:27:44 remm Exp $ - * $Revision: 1.13 $ - * $Date: 2001/03/06 02:27:44 $ + * $Header: /home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/servlets/WebdavServlet.java,v 1.14 2001/04/04 18:23:06 remm Exp $ + * $Revision: 1.14 $ + * $Date: 2001/04/04 18:23:06 $ * * * @@ -125,7 +125,7 @@ * are handled by the DefaultServlet. * * @author Remy Maucherat - * @version $Revision: 1.13 $ $Date: 2001/03/06 02:27:44 $ + * @version $Revision: 1.14 $ $Date: 2001/04/04 18:23:06 $ */ public class WebdavServlet @@ -215,9 +215,9 @@ /** - * JAXP Document builder. + * JAXP Document builder factory. */ -private DocumentBuilder documentBuilder; +private DocumentBuilderFactory documentBuilderFactory; /** @@ -275,13 +275,7 @@ ; } -try { -documentBuilder = -DocumentBuilderFactory.newInstance().newDocumentBuilder(); -} catch(ParserConfigurationException e) { -throw new ServletException -(sm.getString("webdavservlet.jaxpfailed")); -} +documentBuilderFactory = DocumentBuilderFactory.newInstance(); } @@ -431,7 +425,15 @@ Node propNode = null; +DocumentBuilder documentBuilder = null; try { +documentBuilder = documentBuilderFactory.newDocumentBuilder(); +} catch(ParserConfigurationException e) { +throw new ServletException +(sm.getString("webdavservlet.jaxpfailed")); +} + +try { Document document = documentBuilder.parse (new InputSource(req.getInputStream())); @@ -839,6 +841,14 @@ int lockRequestType = LOCK_CREATION; Node lockInfoNode = null; + +DocumentBuilder documentBuilder = null; +try { +documentBuilder = documentBuilderFactory.newDocumentBuilder(); +} catch(ParserConfigurationException e) { +throw new ServletException +(sm.getString("webdavservlet.jaxpfailed")); +} try { Document document = documentBuilder.parse(new InputSource
cvs commit: jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/servlets WebdavServlet.java
remm01/03/05 18:27:44 Modified:catalina/src/share/org/apache/catalina/servlets WebdavServlet.java Log: - Use GMT date for creation date. - status isn't a property. - Removed some old code. Revision ChangesPath 1.13 +57 -26 jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/servlets/WebdavServlet.java Index: WebdavServlet.java === RCS file: /home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/servlets/WebdavServlet.java,v retrieving revision 1.12 retrieving revision 1.13 diff -u -r1.12 -r1.13 --- WebdavServlet.java2001/02/01 00:27:10 1.12 +++ WebdavServlet.java2001/03/06 02:27:44 1.13 @@ -1,7 +1,7 @@ /* - * $Header: /home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/servlets/WebdavServlet.java,v 1.12 2001/02/01 00:27:10 remm Exp $ - * $Revision: 1.12 $ - * $Date: 2001/02/01 00:27:10 $ + * $Header: /home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/servlets/WebdavServlet.java,v 1.13 2001/03/06 02:27:44 remm Exp $ + * $Revision: 1.13 $ + * $Date: 2001/03/06 02:27:44 $ * * * @@ -84,6 +84,7 @@ import java.util.Locale; import java.util.Hashtable; import java.util.Calendar; +import java.util.TimeZone; import java.text.ParseException; import java.text.SimpleDateFormat; import java.security.MessageDigest; @@ -124,7 +125,7 @@ * are handled by the DefaultServlet. * * @author Remy Maucherat - * @version $Revision: 1.12 $ $Date: 2001/02/01 00:27:10 $ + * @version $Revision: 1.13 $ $Date: 2001/03/06 02:27:44 $ */ public class WebdavServlet @@ -202,9 +203,14 @@ * Simple date format for the creation date ISO representation (partial). */ protected static final SimpleDateFormat creationDateFormat = -new SimpleDateFormat("-MM-dd'T'HH:mm:ss", Locale.US); +new SimpleDateFormat("-MM-dd'T'HH:mm:ss'Z'"); +static { +creationDateFormat.setTimeZone(TimeZone.getTimeZone("GMT")); +} + + // - Instance Variables @@ -591,12 +597,6 @@ generatedXML.sendData(); -/* -Writer writer = resp.getWriter(); -writer.write(generatedXML.toString()); -writer.flush(); -*/ - } @@ -1948,12 +1948,18 @@ + "lockscopeshared//lockscope" + "locktypewrite//locktype" + "/lockentry"; -generatedXML.writeProperty(null, "supportedlock", supportedLocks); +generatedXML.writeElement(null, "supportedlock", + XMLWriter.OPENING); +generatedXML.writeText(supportedLocks); +generatedXML.writeElement(null, "supportedlock", + XMLWriter.CLOSING); generateLockDiscovery(path, generatedXML); generatedXML.writeElement(null, "prop", XMLWriter.CLOSING); -generatedXML.writeProperty(null, "status", status); +generatedXML.writeElement(null, "status", XMLWriter.OPENING); +generatedXML.writeText(status); +generatedXML.writeElement(null, "status", XMLWriter.CLOSING); generatedXML.writeElement(null, "propstat", XMLWriter.CLOSING); break; @@ -1986,7 +1992,9 @@ XMLWriter.NO_CONTENT); generatedXML.writeElement(null, "prop", XMLWriter.CLOSING); -generatedXML.writeProperty(null, "status", status); +generatedXML.writeElement(null, "status", XMLWriter.OPENING); +generatedXML.writeText(status); +generatedXML.writeElement(null, "status", XMLWriter.CLOSING); generatedXML.writeElement(null, "propstat", XMLWriter.CLOSING); break; @@ -2076,8 +2084,11 @@ + "lockscopeshared//lockscope" + "locktypewrite//locktype" + "/lockentry"; -generatedXML.writeProperty(null, "supportedlock", - supportedLocks); +generatedXML.writeElement(null, "supportedlock", + XMLWriter.OPENING); +generatedXML.writeText(supportedLocks); +generatedXML.writeElement(null, "supportedlock", + XMLWriter.CLOSING); } else if
cvs commit: jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/servlets WebdavServlet.java
remm01/01/18 10:57:38 Modified:catalina/src/share/org/apache/catalina/servlets WebdavServlet.java Log: - Make the DAV collection enumeration code more robust. This is the equivalent to what was done in TC 4.1. Revision ChangesPath 1.9 +8 -6 jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/servlets/WebdavServlet.java Index: WebdavServlet.java === RCS file: /home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/servlets/WebdavServlet.java,v retrieving revision 1.8 retrieving revision 1.9 diff -u -r1.8 -r1.9 --- WebdavServlet.java2001/01/18 01:43:10 1.8 +++ WebdavServlet.java2001/01/18 18:57:37 1.9 @@ -1,7 +1,7 @@ /* - * $Header: /home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/servlets/WebdavServlet.java,v 1.8 2001/01/18 01:43:10 remm Exp $ - * $Revision: 1.8 $ - * $Date: 2001/01/18 01:43:10 $ + * $Header: /home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/servlets/WebdavServlet.java,v 1.9 2001/01/18 18:57:37 remm Exp $ + * $Revision: 1.9 $ + * $Date: 2001/01/18 18:57:37 $ * * * @@ -121,7 +121,7 @@ * are handled by the DefaultServlet. * * @author Remy Maucherat - * @version $Revision: 1.8 $ $Date: 2001/01/18 01:43:10 $ + * @version $Revision: 1.9 $ $Date: 2001/01/18 18:57:37 $ */ public class WebdavServlet @@ -510,8 +510,10 @@ String[] children = resources.getCollectionMembers(currentPath); -for (int i=0; ichildren.length; i++) { -stackBelow.push(children[i]); +if (children != null) { +for (int i=0; ichildren.length; i++) { +stackBelow.push(children[i]); +} } if (depth 0) { - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, email: [EMAIL PROTECTED]
cvs commit: jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/servlets WebdavServlet.java
remm01/01/17 17:43:10 Modified:catalina/src/share/org/apache/catalina/servlets WebdavServlet.java Log: - Add a Microsoft specific header in response to OPTIONS request, mirroring what mod_dav is doing. Should enhance compatibility with older MS clients. Revision ChangesPath 1.8 +6 -4 jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/servlets/WebdavServlet.java Index: WebdavServlet.java === RCS file: /home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/servlets/WebdavServlet.java,v retrieving revision 1.7 retrieving revision 1.8 diff -u -r1.7 -r1.8 --- WebdavServlet.java2001/01/08 20:57:11 1.7 +++ WebdavServlet.java2001/01/18 01:43:10 1.8 @@ -1,7 +1,7 @@ /* - * $Header: /home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/servlets/WebdavServlet.java,v 1.7 2001/01/08 20:57:11 remm Exp $ - * $Revision: 1.7 $ - * $Date: 2001/01/08 20:57:11 $ + * $Header: /home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/servlets/WebdavServlet.java,v 1.8 2001/01/18 01:43:10 remm Exp $ + * $Revision: 1.8 $ + * $Date: 2001/01/18 01:43:10 $ * * * @@ -121,7 +121,7 @@ * are handled by the DefaultServlet. * * @author Remy Maucherat - * @version $Revision: 1.7 $ $Date: 2001/01/08 20:57:11 $ + * @version $Revision: 1.8 $ $Date: 2001/01/18 01:43:10 $ */ public class WebdavServlet @@ -369,6 +369,8 @@ } resp.addHeader("Allow", methodsAllowed); + +resp.addHeader("MS-Author-Via", "DAV"); } - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, email: [EMAIL PROTECTED]
Re: cvs commit: jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/servlets WebdavServlet.java
In general, I hope we are cautious about adding non-standard headers like this. It is not a precedent I particularly like, but I can see the reasoning for doing it this time. Agreed, but apprently mod_dav (ie, Apache 2.0) is doing the same. It's such an insignificant change that I couldn't find a valid reason to justify why we shouldn't include it. If it was more significant (like MS proprietary property types), I wouldn't even think about adding it. Remy - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, email: [EMAIL PROTECTED]