You are viewing a plain text version of this content. The canonical link for it is here.
Posted to slide-dev@jakarta.apache.org by re...@apache.org on 2001/05/09 00:23:37 UTC
cvs commit: jakarta-slide/src/webdav/server/org/apache/slide/webdav/method PropFindMethod.java WebdavMethod.java
remm 01/05/08 15:23:36
Modified: src/webdav/server/org/apache/slide/webdav WebdavServlet.java
src/webdav/server/org/apache/slide/webdav/method
PropFindMethod.java WebdavMethod.java
Log:
- The depth limit for PROPFIND is now configurable.
Patch submitted by Dirk Verbeeck <dirk.verbeeck at the-ecorp.com>
Revision Changes Path
1.13 +13 -4 jakarta-slide/src/webdav/server/org/apache/slide/webdav/WebdavServlet.java
Index: WebdavServlet.java
===================================================================
RCS file: /home/cvs/jakarta-slide/src/webdav/server/org/apache/slide/webdav/WebdavServlet.java,v
retrieving revision 1.12
retrieving revision 1.13
diff -u -r1.12 -r1.13
--- WebdavServlet.java 2001/04/13 22:06:39 1.12
+++ WebdavServlet.java 2001/05/08 22:23:25 1.13
@@ -1,7 +1,7 @@
/*
- * $Header: /home/cvs/jakarta-slide/src/webdav/server/org/apache/slide/webdav/WebdavServlet.java,v 1.12 2001/04/13 22:06:39 remm Exp $
- * $Revision: 1.12 $
- * $Date: 2001/04/13 22:06:39 $
+ * $Header: /home/cvs/jakarta-slide/src/webdav/server/org/apache/slide/webdav/WebdavServlet.java,v 1.13 2001/05/08 22:23:25 remm Exp $
+ * $Revision: 1.13 $
+ * $Date: 2001/05/08 22:23:25 $
*
* ====================================================================
*
@@ -253,6 +253,7 @@
String namespaceName = "webdav";
String domainConfigFile = "/Domain.xml";
String managerServletPath = "/manager/";
+ int depthLimit = 3;
String value = null;
try {
@@ -276,8 +277,16 @@
} catch (Throwable t) {
;
}
+ try {
+ value = getServletConfig().getInitParameter("depth-limit");
+ if (value != null) {
+ depthLimit = Integer.parseInt(value);
+ }
+ } catch (Throwable t) {
+ ;
+ }
- WebdavMethod.init(managerServletPath);
+ WebdavMethod.init(managerServletPath, depthLimit);
try {
1.20 +18 -11 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.19
retrieving revision 1.20
diff -u -r1.19 -r1.20
--- PropFindMethod.java 2001/04/25 03:44:26 1.19
+++ PropFindMethod.java 2001/05/08 22:23:31 1.20
@@ -1,7 +1,7 @@
/*
- * $Header: /home/cvs/jakarta-slide/src/webdav/server/org/apache/slide/webdav/method/PropFindMethod.java,v 1.19 2001/04/25 03:44:26 remm Exp $
- * $Revision: 1.19 $
- * $Date: 2001/04/25 03:44:26 $
+ * $Header: /home/cvs/jakarta-slide/src/webdav/server/org/apache/slide/webdav/method/PropFindMethod.java,v 1.20 2001/05/08 22:23:31 remm Exp $
+ * $Revision: 1.20 $
+ * $Date: 2001/05/08 22:23:31 $
*
* ====================================================================
*
@@ -102,7 +102,7 @@
/**
* Default depth is infite.
*/
- protected static final int INFINITY = 3; // To limit tree browsing a bit
+ protected static final int INFINITY = Integer.MAX_VALUE;
/**
@@ -327,18 +327,25 @@
if (depthStr == null) {
depth = INFINITY;
+ } else if (depthStr.equals("0")) {
+ depth = 0;
+ } else if (depthStr.equals("1")) {
+ depth = 1;
+ } else if (depthStr.equals("infinity")) {
+ depth = INFINITY;
} else {
- if (depthStr.equals("0")) {
- depth = 0;
- }
- if (depthStr.equals("1")) {
- depth = 1;
- }
- if (depthStr.equals("infinity")) {
+ try {
+ depth = Integer.parseInt(depthStr);
+ } catch (NumberFormatException ex) {
depth = INFINITY;
}
}
+ // To limit tree browsing a bit
+ if (depth > depthLimit) {
+ depth = depthLimit;
+ }
+
if (req.getContentLength() != 0) {
Node propNode = null;
1.19 +14 -4 jakarta-slide/src/webdav/server/org/apache/slide/webdav/method/WebdavMethod.java
Index: WebdavMethod.java
===================================================================
RCS file: /home/cvs/jakarta-slide/src/webdav/server/org/apache/slide/webdav/method/WebdavMethod.java,v
retrieving revision 1.18
retrieving revision 1.19
diff -u -r1.18 -r1.19
--- WebdavMethod.java 2001/03/23 05:08:32 1.18
+++ WebdavMethod.java 2001/05/08 22:23:32 1.19
@@ -1,7 +1,7 @@
/*
- * $Header: /home/cvs/jakarta-slide/src/webdav/server/org/apache/slide/webdav/method/WebdavMethod.java,v 1.18 2001/03/23 05:08:32 remm Exp $
- * $Revision: 1.18 $
- * $Date: 2001/03/23 05:08:32 $
+ * $Header: /home/cvs/jakarta-slide/src/webdav/server/org/apache/slide/webdav/method/WebdavMethod.java,v 1.19 2001/05/08 22:23:32 remm Exp $
+ * $Revision: 1.19 $
+ * $Date: 2001/05/08 22:23:32 $
*
* ====================================================================
*
@@ -237,6 +237,12 @@
protected static String managerServletPath = "/manager/";
+ /**
+ * Depth limit. To limit tree browsing when using depth = infinity
+ */
+ protected static int depthLimit = 3;
+
+
// ----------------------------------------------------------- Constructors
@@ -291,7 +297,7 @@
*
* @param servletPath Path of the manager servlet
*/
- public static void init(String servletPath) {
+ public static void init(String servletPath, int limit) {
// Load the MD5 helper used to calculate signatures.
try {
@@ -305,6 +311,10 @@
managerServletPath = servletPath;
}
+ if (limit>0) {
+ depthLimit = limit;
+ }
+
}