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

2004-07-23 Thread remm
remm2004/07/23 15:41:32

  Modified:catalina/src/share/org/apache/catalina/servlets
WebdavServlet.java DefaultServlet.java
  Log:
  - enum - enumeration (JDK 1.5 update).
  
  Revision  ChangesPath
  1.16  +11 -11
jakarta-tomcat-catalina/catalina/src/share/org/apache/catalina/servlets/WebdavServlet.java
  
  Index: WebdavServlet.java
  ===
  RCS file: 
/home/cvs/jakarta-tomcat-catalina/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.java13 Jul 2004 09:43:19 -  1.15
  +++ WebdavServlet.java23 Jul 2004 22:41:32 -  1.16
  @@ -499,10 +499,10 @@
   if ((object instanceof DirContext)  (depth  0)) {
   
   try {
  -NamingEnumeration enum = resources.list(currentPath);
  -while (enum.hasMoreElements()) {
  +NamingEnumeration enumeration = resources.list(currentPath);
  +while (enumeration.hasMoreElements()) {
   NameClassPair ncPair =
  -(NameClassPair) enum.nextElement();
  +(NameClassPair) enumeration.nextElement();
   String newPath = currentPath;
   if (!(newPath.endsWith(/)))
   newPath += /;
  @@ -1597,9 +1597,9 @@
   }
   
   try {
  -NamingEnumeration enum = resources.list(source);
  -while (enum.hasMoreElements()) {
  -NameClassPair ncPair = (NameClassPair) enum.nextElement();
  +NamingEnumeration enumeration = resources.list(source);
  +while (enumeration.hasMoreElements()) {
  +NameClassPair ncPair = (NameClassPair) 
enumeration.nextElement();
   String childDest = dest;
   if (!childDest.equals(/))
   childDest += /;
  @@ -1769,17 +1769,17 @@
   if (lockTokenHeader == null)
   lockTokenHeader = ;
   
  -Enumeration enum = null;
  +Enumeration enumeration = null;
   try {
  -enum = resources.list(path);
  + enumeration = resources.list(path);
   } catch (NamingException e) {
   errorList.put(path, new Integer
   (WebdavStatus.SC_INTERNAL_SERVER_ERROR));
   return;
   }
   
  -while (enum.hasMoreElements()) {
  -NameClassPair ncPair = (NameClassPair) enum.nextElement();
  +while (enumeration.hasMoreElements()) {
  +NameClassPair ncPair = (NameClassPair) enumeration.nextElement();
   String childName = path;
   if (!childName.equals(/))
   childName += /;
  
  
  
  1.26  +7 -7  
jakarta-tomcat-catalina/catalina/src/share/org/apache/catalina/servlets/DefaultServlet.java
  
  Index: DefaultServlet.java
  ===
  RCS file: 
/home/cvs/jakarta-tomcat-catalina/catalina/src/share/org/apache/catalina/servlets/DefaultServlet.java,v
  retrieving revision 1.25
  retrieving revision 1.26
  diff -u -r1.25 -r1.26
  --- DefaultServlet.java   13 Jul 2004 15:04:37 -  1.25
  +++ DefaultServlet.java   23 Jul 2004 22:41:32 -  1.26
  @@ -1205,10 +1205,10 @@
   
   // Render the directory entries within this directory
   DirContext directory = cacheEntry.context;
  -NamingEnumeration enum = resources.list(cacheEntry.name);
  -while (enum.hasMoreElements()) {
  +NamingEnumeration enumeration = resources.list(cacheEntry.name);
  +while (enumeration.hasMoreElements()) {
   
  -NameClassPair ncPair = (NameClassPair) enum.nextElement();
  +NameClassPair ncPair = (NameClassPair) enumeration.nextElement();
   String resourceName = ncPair.getName();
   CacheEntry childCacheEntry =
   resources.lookupCache(cacheEntry.name + resourceName);
  @@ -1374,11 +1374,11 @@
   
   // Render the directory entries within this directory
   DirContext directory = cacheEntry.context;
  -NamingEnumeration enum = resources.list(cacheEntry.name);
  +NamingEnumeration enumeration = resources.list(cacheEntry.name);
   boolean shade = false;
  -while (enum.hasMoreElements()) {
  +while (enumeration.hasMoreElements()) {
   
  -NameClassPair ncPair = (NameClassPair) enum.nextElement();
  +NameClassPair ncPair = (NameClassPair) 

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

2004-07-13 Thread remm
remm2004/07/13 02:43:19

  Modified:catalina/src/share/org/apache/catalina/servlets
WebdavServlet.java DefaultServlet.java
  Log:
  - Simplify the code of DefaultServlet a bit, by removing ResourceInfo (which 
duplicates information from CacheEntry).
  - This is also a small performance improvement.
  
  Revision  ChangesPath
  1.15  +30 -82
jakarta-tomcat-catalina/catalina/src/share/org/apache/catalina/servlets/WebdavServlet.java
  
  Index: WebdavServlet.java
  ===
  RCS file: 
/home/cvs/jakarta-tomcat-catalina/catalina/src/share/org/apache/catalina/servlets/WebdavServlet.java,v
  retrieving revision 1.14
  retrieving revision 1.15
  diff -u -r1.14 -r1.15
  --- WebdavServlet.java26 May 2004 16:03:14 -  1.14
  +++ WebdavServlet.java13 Jul 2004 09:43:19 -  1.15
  @@ -43,7 +43,9 @@
   import org.apache.catalina.util.DOMWriter;
   import org.apache.catalina.util.RequestUtil;
   import org.apache.catalina.util.XMLWriter;
  +import org.apache.naming.resources.CacheEntry;
   import org.apache.naming.resources.Resource;
  +import org.apache.naming.resources.ResourceAttributes;
   import org.apache.tomcat.util.http.FastHttpDateFormat;
   import org.w3c.dom.Document;
   import org.w3c.dom.Element;
  @@ -275,10 +277,10 @@
*/
   protected boolean checkIfHeaders(HttpServletRequest request,
HttpServletResponse response,
  - ResourceInfo resourceInfo)
  + ResourceAttributes resourceAttributes)
   throws IOException {
   
  -if (!super.checkIfHeaders(request, response, resourceInfo))
  +if (!super.checkIfHeaders(request, response, resourceAttributes))
   return false;
   
   // TODO : Checking the WebDAV If header
  @@ -295,14 +297,6 @@
   
   resp.addHeader(DAV, 1,2);
   
  -// Retrieve the resources
  -DirContext resources = getResources();
  -
  -if (resources == null) {
  -resp.sendError(HttpServletResponse.SC_INTERNAL_SERVER_ERROR);
  -return;
  -}
  -
   StringBuffer methodsAllowed = determineMethodsAllowed(resources,
 req);
   
  @@ -319,14 +313,6 @@
   throws ServletException, IOException {
   
   if (!listings) {
  -// Retrieve the resources
  -DirContext resources = getResources();
  -
  -if (resources == null) {
  -resp.sendError(HttpServletResponse.SC_INTERNAL_SERVER_ERROR);
  -return;
  -}
  -
   // Get allowed methods
   StringBuffer methodsAllowed = determineMethodsAllowed(resources,
 req);
  @@ -429,14 +415,6 @@
   
   }
   
  -// Retrieve the resources
  -DirContext resources = getResources();
  -
  -if (resources == null) {
  -resp.sendError(HttpServletResponse.SC_INTERNAL_SERVER_ERROR);
  -return;
  -}
  -
   boolean exists = true;
   Object object = null;
   try {
  @@ -496,7 +474,7 @@
 XMLWriter.OPENING);
   
   if (depth == 0) {
  -parseProperties(req, resources, generatedXML, path, type,
  +parseProperties(req, generatedXML, path, type,
   properties);
   } else {
   // The stack always contains the object of the current level
  @@ -509,7 +487,7 @@
   while ((!stack.isEmpty())  (depth = 0)) {
   
   String currentPath = (String) stack.pop();
  -parseProperties(req, resources, generatedXML, currentPath,
  +parseProperties(req, generatedXML, currentPath,
   type, properties);
   
   try {
  @@ -625,14 +603,6 @@
   return;
   }
   
  -// Retrieve the resources
  -DirContext resources = getResources();
  -
  -if (resources == null) {
  -resp.sendError(HttpServletResponse.SC_INTERNAL_SERVER_ERROR);
  -return;
  -}
  -
   boolean exists = true;
   Object object = null;
   try {
  @@ -991,14 +961,6 @@
   
   lock.path = path;
   
  -// Retrieve the resources
  -DirContext resources = getResources();
  -
  -if (resources == null) {
  -resp.sendError(HttpServletResponse.SC_INTERNAL_SERVER_ERROR);
  -return;
  -}
  -
   boolean exists = true;
   Object object = null;
   try {
  @@ -1552,14 +1514,6 @@
   
   // Overwriting the destination
   
  -// Retrieve the 

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

2004-05-26 Thread yoavs
yoavs   2004/05/26 09:03:14

  Modified:catalina/src/share/org/apache/catalina/servlets
WebdavServlet.java
  Log:
  Minor JavaDoc fixes (Bugzilla 28335)
  
  Revision  ChangesPath
  1.14  +4 -5  
jakarta-tomcat-catalina/catalina/src/share/org/apache/catalina/servlets/WebdavServlet.java
  
  Index: WebdavServlet.java
  ===
  RCS file: 
/home/cvs/jakarta-tomcat-catalina/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.java27 Feb 2004 14:58:46 -  1.13
  +++ WebdavServlet.java26 May 2004 16:03:14 -  1.14
  @@ -714,8 +714,8 @@
   /**
* Process a POST request for the specified resource.
*
  - * @param request The servlet request we are processing
  - * @param response The servlet response we are creating
  + * @param req The servlet request we are processing
  + * @param resp The servlet response we are creating
*
* @exception IOException if an input/output error occurs
* @exception ServletException if a servlet-specified error occurs
  @@ -1934,6 +1934,7 @@
   /**
* Propfind helper method.
*
  + * @param req The servlet request
* @param resources Resources object associated with this context
* @param generatedXML XML response to the Propfind request
* @param path Path of the current resource
  @@ -2590,8 +2591,6 @@
   
   /**
* Constructor.
  - *
  - * @param pathname Path name of the file
*/
   public LockInfo() {
   
  
  
  

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



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

2004-02-25 Thread markt
markt   2004/02/25 14:36:36

  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.
  
  Revision  ChangesPath
  1.12  +13 -12
jakarta-tomcat-catalina/catalina/src/share/org/apache/catalina/servlets/WebdavServlet.java
  
  Index: WebdavServlet.java
  ===
  RCS file: 
/home/cvs/jakarta-tomcat-catalina/catalina/src/share/org/apache/catalina/servlets/WebdavServlet.java,v
  retrieving revision 1.11
  retrieving revision 1.12
  diff -u -r1.11 -r1.12
  --- WebdavServlet.java22 Feb 2004 22:34:16 -  1.11
  +++ WebdavServlet.java25 Feb 2004 22:36:35 -  1.12
  @@ -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-catalina/catalina/src/share/org/apache/catalina/servlets WebdavServlet.java

2004-02-22 Thread markt
markt   2004/02/22 14:34:16

  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.
  
  Revision  ChangesPath
  1.11  +9 -24 
jakarta-tomcat-catalina/catalina/src/share/org/apache/catalina/servlets/WebdavServlet.java
  
  Index: WebdavServlet.java
  ===
  RCS file: 
/home/cvs/jakarta-tomcat-catalina/catalina/src/share/org/apache/catalina/servlets/WebdavServlet.java,v
  retrieving revision 1.10
  retrieving revision 1.11
  diff -u -r1.10 -r1.11
  --- WebdavServlet.java13 Feb 2004 22:19:52 -  1.10
  +++ WebdavServlet.java22 Feb 2004 22:34:16 -  1.11
  @@ -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-catalina/catalina/src/share/org/apache/catalina/servlets WebdavServlet.java

2004-02-13 Thread markt
markt   2004/02/13 12:06:50

  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
  
  Revision  ChangesPath
  1.9   +9 -6  
jakarta-tomcat-catalina/catalina/src/share/org/apache/catalina/servlets/WebdavServlet.java
  
  Index: WebdavServlet.java
  ===
  RCS file: 
/home/cvs/jakarta-tomcat-catalina/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.java22 Dec 2003 12:38:02 -  1.8
  +++ WebdavServlet.java13 Feb 2004 20:06:50 -  1.9
  @@ -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-catalina/catalina/src/share/org/apache/catalina/servlets WebdavServlet.java

2004-02-13 Thread markt
markt   2004/02/13 14:19:52

  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
  
  Revision  ChangesPath
  1.10  +8 -5  
jakarta-tomcat-catalina/catalina/src/share/org/apache/catalina/servlets/WebdavServlet.java
  
  Index: WebdavServlet.java
  ===
  RCS file: 
/home/cvs/jakarta-tomcat-catalina/catalina/src/share/org/apache/catalina/servlets/WebdavServlet.java,v
  retrieving revision 1.9
  retrieving revision 1.10
  diff -u -r1.9 -r1.10
  --- WebdavServlet.java13 Feb 2004 20:06:50 -  1.9
  +++ WebdavServlet.java13 Feb 2004 22:19:52 -  1.10
  @@ -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]



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

2003-11-16 Thread Mark Thomas
Sorry, just spotted a silly error in my patch. The line
methodsAllowed.append(PROPFIND, );
in determineMethodsAllowed() should have been
methodsAllowed.append(, PROPFIND);

Grateful if one of the committers could fix this.

Again, apologies.

Mark

On Friday, November 14, 2003 10:16 AM, [EMAIL PROTECTED] [SMTP:[EMAIL PROTECTED] 
wrote:
 remm2003/11/14 02:16:22

   Modified:catalina/src/share/org/apache/catalina/servlets
 WebdavServlet.java
   Log:
   - Allow header handling.
   - Bug 24006, submitted by Mark Thomas.

   Revision  ChangesPath
   1.6   +64 -31jakarta-tomcat-
   catalina/catalina/src/share/org/apache/catalina/servlets/WebdavServlet.java

   Index: WebdavServlet.java
   ===
   RCS file: /home/cvs/jakarta-tomcat-
 
  catalina/catalina/src/share/org/apache/catalina/servlets/WebdavServlet.java,v
   retrieving revision 1.5
   retrieving revision 1.6
   diff -u -r1.5 -r1.6
   --- WebdavServlet.java  6 Oct 2003 08:05:46 -   1.5
   +++ WebdavServlet.java  14 Nov 2003 10:16:22 -  1.6
   @@ -338,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();

   @@ -351,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,
   +  req);

   +resp.addHeader(Allow, methodsAllowed.toString());
resp.addHeader(MS-Author-Via, DAV);

}
   @@ -385,6 +364,19 @@
throws ServletException, IOException {

if (!listings) {
   +// Retrieve the resources
   +DirContext resources = getResources();
   +
   +if (resources == null) {
   +resp.sendError
   (HttpServletResponse.SC_INTERNAL_SERVER_ERROR);
   +return;
   +}
   +
   +// Get allowed methods
   +StringBuffer methodsAllowed = determineMethodsAllowed
   (resources,
   +  req);
   +
   +resp.addHeader(Allow, methodsAllowed.toString());
resp.sendError(WebdavStatus.SC_METHOD_NOT_ALLOWED);
return;
}
   @@ -649,7 +641,7 @@
return;
}

   -resp.sendError(HttpServletResponse.SC_METHOD_NOT_ALLOWED);
   +resp.sendError(HttpServletResponse.SC_NOT_IMPLEMENTED);

}

   @@ -697,6 +689,12 @@
// Can't create a collection if a resource already exists at the
given
// path
if (exists) {
   +// Get allowed methods
   +StringBuffer methodsAllowed = determineMethodsAllowed
   (resources,
   +  req);
   +
   +resp.addHeader(Allow, methodsAllowed.toString());
   +
resp.sendError(WebdavStatus.SC_METHOD_NOT_ALLOWED);
return;
}
   @@ -2566,6 +2564,42 @@
return creationDateValue.toString();
}

   +/**
   + * Determines the methods normally allowed for the resource.
   + *
   + */
   +private StringBuffer determineMethodsAllowed(DirContext resources,
   + HttpServletRequest req) {
   +
   +StringBuffer methodsAllowed = new StringBuffer();
   +boolean exists = true;
   +Object object = null;
   +try {
   +String path = getRelativePath(req);
   +
   +object = resources.lookup(path);
   +} catch (NamingException e) {
   +exists = false;
   +}
   +
   +if (!exists) {
   +methodsAllowed.append(OPTIONS, MKCOL, PUT, LOCK);
   +return methodsAllowed;
   +}
   +
   +

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

2003-11-14 Thread remm
remm2003/11/14 02:16:22

  Modified:catalina/src/share/org/apache/catalina/servlets
WebdavServlet.java
  Log:
  - Allow header handling.
  - Bug 24006, submitted by Mark Thomas.
  
  Revision  ChangesPath
  1.6   +64 -31
jakarta-tomcat-catalina/catalina/src/share/org/apache/catalina/servlets/WebdavServlet.java
  
  Index: WebdavServlet.java
  ===
  RCS file: 
/home/cvs/jakarta-tomcat-catalina/catalina/src/share/org/apache/catalina/servlets/WebdavServlet.java,v
  retrieving revision 1.5
  retrieving revision 1.6
  diff -u -r1.5 -r1.6
  --- WebdavServlet.java6 Oct 2003 08:05:46 -   1.5
  +++ WebdavServlet.java14 Nov 2003 10:16:22 -  1.6
  @@ -338,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();
   
  @@ -351,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,
  +  req);
   
  +resp.addHeader(Allow, methodsAllowed.toString());
   resp.addHeader(MS-Author-Via, DAV);
   
   }
  @@ -385,6 +364,19 @@
   throws ServletException, IOException {
   
   if (!listings) {
  +// Retrieve the resources
  +DirContext resources = getResources();
  +
  +if (resources == null) {
  +resp.sendError(HttpServletResponse.SC_INTERNAL_SERVER_ERROR);
  +return;
  +}
  +
  +// Get allowed methods
  +StringBuffer methodsAllowed = determineMethodsAllowed(resources,
  +  req);
  +
  +resp.addHeader(Allow, methodsAllowed.toString());
   resp.sendError(WebdavStatus.SC_METHOD_NOT_ALLOWED);
   return;
   }
  @@ -649,7 +641,7 @@
   return;
   }
   
  -resp.sendError(HttpServletResponse.SC_METHOD_NOT_ALLOWED);
  +resp.sendError(HttpServletResponse.SC_NOT_IMPLEMENTED);
   
   }
   
  @@ -697,6 +689,12 @@
   // Can't create a collection if a resource already exists at the given
   // path
   if (exists) {
  +// Get allowed methods
  +StringBuffer methodsAllowed = determineMethodsAllowed(resources,
  +  req);
  +
  +resp.addHeader(Allow, methodsAllowed.toString());
  +
   resp.sendError(WebdavStatus.SC_METHOD_NOT_ALLOWED);
   return;
   }
  @@ -2566,6 +2564,42 @@
   return creationDateValue.toString();
   }
   
  +/**
  + * Determines the methods normally allowed for the resource.
  + *  
  + */
  +private StringBuffer determineMethodsAllowed(DirContext resources,
  + HttpServletRequest req) {
  +
  +StringBuffer methodsAllowed = new StringBuffer();
  +boolean exists = true;
  +Object object = null;
  +try {
  +String path = getRelativePath(req);
  +
  +object = resources.lookup(path);
  +} catch (NamingException e) {
  +exists = false;
  +}
  +
  +if (!exists) {
  +methodsAllowed.append(OPTIONS, MKCOL, PUT, LOCK);
  +return methodsAllowed;
  +}
  +
  +methodsAllowed.append(OPTIONS, GET, HEAD, POST, DELETE, TRACE, );
  +methodsAllowed.append(PROPPATCH, COPY, MOVE, LOCK, UNLOCK);
  +
  +if (listings) {
  +methodsAllowed.append(PROPFIND, );
  +}
  +
  +if (!(object instanceof DirContext)) {
  +methodsAllowed.append(, PUT);
  +}
  +
  +return methodsAllowed;
  +}
   
   // 

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

2003-10-06 Thread remm
remm2003/10/06 01:05:46

  Modified:catalina/src/share/org/apache/catalina/servlets
WebdavServlet.java
  Log:
  - Decode and normalize destination path before doing anything else.
  
  Revision  ChangesPath
  1.5   +7 -7  
jakarta-tomcat-catalina/catalina/src/share/org/apache/catalina/servlets/WebdavServlet.java
  
  Index: WebdavServlet.java
  ===
  RCS file: 
/home/cvs/jakarta-tomcat-catalina/catalina/src/share/org/apache/catalina/servlets/WebdavServlet.java,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- WebdavServlet.java2 Sep 2003 21:22:05 -   1.4
  +++ WebdavServlet.java6 Oct 2003 08:05:46 -   1.5
  @@ -1488,6 +1488,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
  @@ -1536,9 +1539,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-catalina/catalina/src/share/org/apache/catalina/servlets WebdavServlet.java

2002-08-13 Thread patrickl

patrickl2002/08/13 13:45:02

  Modified:catalina/src/share/org/apache/catalina/connector
HttpResponseBase.java
   catalina/src/share/org/apache/catalina/servlets
WebdavServlet.java
  Log:
  Use SC_FOUND instead of SC_MOVED_TEMPORARILY in accordance with section 15.1.5 of 
the Servlet 2.4 specification
  
  Revision  ChangesPath
  1.2   +6 -6  
jakarta-tomcat-catalina/catalina/src/share/org/apache/catalina/connector/HttpResponseBase.java
  
  Index: HttpResponseBase.java
  ===
  RCS file: 
/home/cvs/jakarta-tomcat-catalina/catalina/src/share/org/apache/catalina/connector/HttpResponseBase.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- HttpResponseBase.java 18 Jul 2002 16:47:57 -  1.1
  +++ HttpResponseBase.java 13 Aug 2002 20:45:02 -  1.2
  @@ -419,7 +419,7 @@
   return (Method Not Allowed);
   case SC_MOVED_PERMANENTLY:
   return (Moved Permanently);
  -case SC_MOVED_TEMPORARILY:
  +case SC_FOUND:
   return (Moved Temporarily);
   case SC_MULTIPLE_CHOICES:
   return (Multiple Choices);
  @@ -1138,7 +1138,7 @@
   // Generate a temporary redirect to the specified location
   try {
   String absolute = toAbsolute(location);
  -setStatus(SC_MOVED_TEMPORARILY);
  +setStatus(SC_FOUND);
   setHeader(Location, absolute);
   } catch (IllegalArgumentException e) {
   setStatus(SC_NOT_FOUND);
  
  
  
  1.2   +7 -7  
jakarta-tomcat-catalina/catalina/src/share/org/apache/catalina/servlets/WebdavServlet.java
  
  Index: WebdavServlet.java
  ===
  RCS file: 
/home/cvs/jakarta-tomcat-catalina/catalina/src/share/org/apache/catalina/servlets/WebdavServlet.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- WebdavServlet.java18 Jul 2002 16:47:42 -  1.1
  +++ WebdavServlet.java13 Aug 2002 20:45:02 -  1.2
  @@ -2815,8 +2815,8 @@
* moved to another location, but that future references should
* still use the original URI to access the resource.
*/
  -public static final int SC_MOVED_TEMPORARILY =
  -HttpServletResponse.SC_MOVED_TEMPORARILY;
  +public static final int SC_FOUND =
  +HttpServletResponse.SC_FOUND;
   
   
   /**
  @@ -2998,7 +2998,7 @@
   addStatusCodeMap(SC_ACCEPTED, Accepted);
   addStatusCodeMap(SC_NO_CONTENT, No Content);
   addStatusCodeMap(SC_MOVED_PERMANENTLY, Moved Permanently);
  -addStatusCodeMap(SC_MOVED_TEMPORARILY, Moved Temporarily);
  +addStatusCodeMap(SC_FOUND, Moved Temporarily);
   addStatusCodeMap(SC_NOT_MODIFIED, Not Modified);
   addStatusCodeMap(SC_BAD_REQUEST, Bad Request);
   addStatusCodeMap(SC_UNAUTHORIZED, Unauthorized);
  
  
  

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