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;
  +        }
  +
       }