You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@jackrabbit.apache.org by "Satya Deep Maheshwari (JIRA)" <ji...@apache.org> on 2015/10/14 08:30:05 UTC

[jira] [Updated] (JCR-3895) Add handler to handle webdav LOCK requests

     [ https://issues.apache.org/jira/browse/JCR-3895?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Satya Deep Maheshwari updated JCR-3895:
---------------------------------------
    Attachment: JCR-3895.patch

Attaching a patch containing proposed implementation for this.

Implementation synopsis: 

* Introduced a new LockHandler interface which is responsible for  checking whether a resource is lockable or not. If it is lockable, it would return a LockManager to take care of the webdav locking operations. LockManager [1] is a pre-existing interface in Jackrabbit for taking care of webdav lock operations.
* Introduced a new LockHandlerManager interface. This provides api to register lockhandlers. It also provides api to get the appropriate LockManager for a resource on the basis of its registered LockHandlers and the specified resource on which the webdav lock operation is to be performed.
* org.apache.jackrabbit.webdav.simple.ResourceFactoryImpl which is responsible for DavResource creation, determines a suitable LockManager for a resource if available. If none is found, it falls back to the default lockmanager that it already has. Thus ensuring that there is no impact on the current functionality unless a LockHandlerManager is available and it is able to return a LockManager for a resource.


[1]-http://jackrabbit.apache.org/api/2.10/org/apache/jackrabbit/webdav/lock/LockManager.html

> Add handler to handle webdav LOCK requests
> ------------------------------------------
>
>                 Key: JCR-3895
>                 URL: https://issues.apache.org/jira/browse/JCR-3895
>             Project: Jackrabbit Content Repository
>          Issue Type: New Feature
>          Components: jackrabbit-jcr-server
>            Reporter: Tobias Bocanegra
>         Attachments: JCR-3895.patch
>
>
> similar to JCR-3884, an application should be able to control how LOCK requests are handled.
> the concrete use case: WebDAV on OSX does not respect failing PUT requests, if the prior LOCK request succeeded. 
> in the case where a user does not have write access to a node, and the node does not have  mix:lockable, the webdav server creates a in-memory lock token for that node, hence allowing the LOCK.
> We don't want to change this behavior in general, as it might have unexpected results in other places, but to be able to control the LOCK behavior in more detail in a handler than can be controlled by the application.
> workaround: create servlet filter



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)