Miguel Moquillon created OAK-10165:
--------------------------------------

             Summary: Locking issue when editing a document by WebDAV with 
LibreOffice
                 Key: OAK-10165
                 URL: https://issues.apache.org/jira/browse/OAK-10165
             Project: Jackrabbit Oak
          Issue Type: Bug
    Affects Versions: 1.48.0
            Reporter: Miguel Moquillon


In a webapp application using Apache Jackrabbit Oak implementation of the JCR, 
the WebDAV access of office documents are provided with Jackrabbit 
{_}SimpleWebDavServlet{_}.

When a document is opened through WebDAV by an office suite (here LibreOffice), 
a lock token is created and passed to the client. This lock token is generated 
by _JcrActiveLock_ which delegates the generation to _LockTokenMapper_ which, 
in the case of Oak, uses for doing {_}LockImpl#getLockToken(){_}. This method 
returns as token the path in the JCR of the node representing the file. Because 
the path contains the '/' separators, those are converted in "%2f". But, some 
office suite like LibreOffice seams to parse this token because they send back 
as token in the request header "Lock-Token" the token value in which the '/' 
character is encoded in "%2F" instead of "%2f" provoking consequently an error 
when unlocking the document.

It should be fine to avoid to pass the path of the document in the JCR as a 
token value. At least, it should be encoded in Base64 or any other encoder.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to