Hi James,

it used to be there, at least two years ago or so.
You asked for a pointer, here it is:


$Header: 
/home/cvspublic/jakarta-slide/src/webdav/server/org/apache/slide/webdav/WebdavServlet.java,v
 1.63 2004/08/05 14:43:34 dflorey Exp $
public void init():
        if (directoryBrowsing) {
            directoryIndexGenerator =
                new DirectoryIndexGenerator
                (token, (WebdavServletConfig)getServletConfig());
        }

$Header: 
/home/cvspublic/jakarta-slide/src/webdav/server/org/apache/slide/webdav/util/DirectoryIndexGenerator.java,v
 1.8 2004/08/05 14:43:31 dflorey Exp $
public void generate(HttpServletRequest req, HttpServletResponse res)
        while (resources.hasMoreElements()) {
            String currentResource = (String) resources.nextElement();
            NodeRevisionDescriptor currentDescriptor = null;
            permissionsList = null;
            locksList = null;
            try {
                NodeRevisionDescriptors revisionDescriptors =
                    content.retrieve(slideToken, currentResource);
                // Retrieve latest revision descriptor
                currentDescriptor =
                    content.retrieve(slideToken, revisionDescriptors);
            } catch (SlideException e) {
> I think here should be a continue for Security exception
                // Silent exception : Objects without any revision are
                // considered collections, and do not have any attributes
                // Any security based exception will be trapped here
                // Any locking based exception will be trapped here
            }

Regarding the all this traversal stuff: When I worked with this 
I would have needed
the possibility to say in a parent: This permission is 
inheritable. Then in 
some deeper child stop inheritence from parents from here on. 
The traverse permission from Warwick Burrows sounds pretty good 
though.
However, I think the traverse permission is not how the read 
permission works on 
collections.

Regards,

Andreas

On 16 Aug 2004 at 14:27, James Mason wrote:

> Awesome. I'll look into a way to fix this. We want to keep the behavior 
> it has now (generates a pretty html display) but need to change how it 
> gets its list of child resource.
> 
> -James
> 
> Andrey Shulinsky wrote:
> 
> > Aha, you're absolutely right!  I've completely forgotten about this
> > GET/PROPFIND difference.
> > About the code - WebdavServlet relies on its parent - HttpServlet - handle
> > GET request if it applies to a collection:
> > 
> >             if ((methodName.equalsIgnoreCase("GET") ||
> >                      methodName.equalsIgnoreCase("POST")) &&
> >                 isCollection(req)) {
> >                 // let the standard doGet() / doPost() methods handle
> >                 // GET/POST requests on collections (to display a directory
> >                 // index pag or something similar)
> >                 super.service(req, resp);
> >             }
> > 
> > So this "collection" case should have some special handling. Probably just
> > the substitution of the GET request by the PROPFIND will do the trick but I
> > can't tell for sure - I'm not an expert in their syntax. 
> > 
> > Yours sincerely,
> > Andrey.
> > 
> > 
> >>-----Original Message-----
> >>From: Slide Users Mailing List [mailto:[EMAIL PROTECTED] 
> >>Sent: Monday, August 16, 2004 4:25 PM
> >>To: [EMAIL PROTECTED]
> >>Subject: Re: Why need read privilege on upstream folders to 
> >>achieve a writ e permission
> >>Importance: Low
> >>
> >>I would expect any WebDAV client to behave this way, 
> >>actually. A WebDAV client uses PROPFIND to get a list of the 
> >>children of a collection. A normal browser on the other hand 
> >>issues a GET. The problem here is the GET request is listing 
> >>all children rather than just the children the user has 
> >>access to. I consider this a security issue, albeit a minor one.
> >>
> >>I'm having trouble tracking down how GETs are handled 
> >>specially for collections, so I'm hoping someone who's 
> >>familiar with the code will step in with a solution or at 
> >>least a pointer in the right direction.
> >>
> >>-James
> >>
> >>Andrey Shulinsky wrote:
> >>
> >>
> >>>Actually, it's not a big deal, although ideally all WebDAV clients 
> >>>should work in the same way. I wish I had more time to help in 
> >>>testing... For
> >>
> >>now I
> >>
> >>>can say that MacOS WebDAV support is consistent with WebFolders in
> >>
> >>handling
> >>
> >>>GET requests.
> >>>
> >>>Yours sincerely,
> >>>Andrey.
> >>>
> >>>
> >>>
> >>>>You're right. It looks like this is a bug in the way GET 
> >>
> >>requests for 
> >>
> >>>>collections are handled. I'll look into this.
> >>>>
> >>>>-James
> >>>>
> >>>>Andrey Shulinsky wrote:
> >>>>
> >>>>
> >>>>>Hi, Warwick, James, everybody! 
> >>>>>
> >>>>>My 2 cents about the matter.
> >>>>>
> >>>>>
> >>>>>
> >>>>>
> >>>>>>Just to clarify, your "traverse" permission *is* how the read 
> >>>>>>permission works on collections. If you get a list of the
> >>>>
> >>>>children of
> >>>>
> >>>>
> >>>>>>a collection you will only see the children to which you 
> >>
> >>have read 
> >>
> >>>>>>access as well.
> >>>>>
> >>>>>
> >>>>>It depends on the client, actually. WebFolders are OK, but IE, for
> >>>>
> >>>>example,
> >>>>
> >>>>
> >>>>>shows all children - with 2.0, at least. 
> >>>
> >>>
> >>>
> >>>
> >>>
> >>---------------------------------------------------------------------
> >>
> >>>To unsubscribe, e-mail: [EMAIL PROTECTED]
> >>>For additional commands, e-mail: [EMAIL PROTECTED]
> >>>
> >>>
> >>>
> >>
> >>---------------------------------------------------------------------
> >>To unsubscribe, e-mail: [EMAIL PROTECTED]
> >>For additional commands, e-mail: [EMAIL PROTECTED]
> >>
> >>
> > 
> > 
> > 
> > ---------------------------------------------------------------------
> > To unsubscribe, e-mail: [EMAIL PROTECTED]
> > For additional commands, e-mail: [EMAIL PROTECTED]
> > 
> > 
> > 
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
> 



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

Reply via email to