cvs commit: jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/servlets WebdavServlet.java

2004-02-25 Thread markt
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

2004-02-22 Thread markt
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

2004-02-13 Thread markt
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

2004-02-13 Thread markt
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

2003-12-11 Thread markt
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

2003-10-06 Thread remm
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

2002-04-01 Thread remm

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

2002-04-01 Thread remm

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

2001-09-14 Thread remm

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

2001-09-06 Thread remm

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

2001-07-24 Thread remm

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

2001-07-23 Thread remm

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

2001-04-10 Thread remm

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

2001-04-05 Thread remm

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

2001-04-04 Thread remm

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

2001-03-05 Thread remm

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

2001-01-18 Thread remm

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

2001-01-17 Thread remm

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

2001-01-17 Thread Remy Maucherat

 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]