msmith 01/03/27 22:05:41
Modified: src/webdav/server/org/apache/slide/webdav/method
PropFindMethod.java
Log:
The <owner> element in a lockdiscovery propfind was getting a more or less
meaningless value (servlet path + subject URI, url encoded).
Instead, just put the subject URI here.
It goes in a CDATA section because we don't know what the subject URI might
contain. This is a pain, but better than the alternatives - the webdav RFC
basically seems to make the entire contents of the owner tag implementation
defined.
Revision Changes Path
1.16 +9 -7
jakarta-slide/src/webdav/server/org/apache/slide/webdav/method/PropFindMethod.java
Index: PropFindMethod.java
===================================================================
RCS file:
/home/cvs/jakarta-slide/src/webdav/server/org/apache/slide/webdav/method/PropFindMethod.java,v
retrieving revision 1.15
retrieving revision 1.16
diff -u -r1.15 -r1.16
--- PropFindMethod.java 2001/03/23 05:08:31 1.15
+++ PropFindMethod.java 2001/03/28 06:05:41 1.16
@@ -1,7 +1,7 @@
/*
- * $Header:
/home/cvs/jakarta-slide/src/webdav/server/org/apache/slide/webdav/method/PropFindMethod.java,v
1.15 2001/03/23 05:08:31 remm Exp $
- * $Revision: 1.15 $
- * $Date: 2001/03/23 05:08:31 $
+ * $Header:
/home/cvs/jakarta-slide/src/webdav/server/org/apache/slide/webdav/method/PropFindMethod.java,v
1.16 2001/03/28 06:05:41 msmith Exp $
+ * $Revision: 1.16 $
+ * $Date: 2001/03/28 06:05:41 $
*
* ====================================================================
*
@@ -1024,10 +1024,12 @@
generatedXML.writeElement(null, "depth", XMLPrinter.CLOSING);
generatedXML.writeElement(null, "owner", XMLPrinter.OPENING);
- generatedXML.writeElement(null, "href", XMLPrinter.OPENING);
- generatedXML.writeText
- (URLEncode(req.getServletPath() + token.getSubjectUri()));
- generatedXML.writeElement(null, "href", XMLPrinter.CLOSING);
+ /* We need to write this as data (i.e. a CDATA section) because
+ * we don't know what the subjectUri (i.e. username) might
+ * contain. The webdav RFC leaves us completely free to
+ * put whatever we want inside the owner element.
+ */
+ generatedXML.writeData(token.getSubjectUri());
generatedXML.writeElement(null, "owner", XMLPrinter.CLOSING);
generatedXML.writeElement(null, "timeout", XMLPrinter.OPENING);