Issue 117766 - Impossible to save changes to ms office files when one was opened through WebDav mapped drive on Windows 7, message "Access denied"
Summary: Impossible to save changes to ms office files when one was opened through Web...
Status: UNCONFIRMED
Alias: None
Product: General
Classification: Code
Component: code (show other issues)
Version: OOO330m20
Hardware: PC Windows 7
: P2 Normal with 1 vote (vote)
Target Milestone: OOo 3.3
Assignee: AOO issues mailing list
QA Contact:
URL:
Keywords: needhelp
Depends on:
Blocks:
 
Reported: 2011-04-08 08:51 UTC by ars.kov
Modified: 2014-03-06 13:17 UTC (History)
6 users (show)

See Also:
Issue Type: DEFECT
Latest Confirmation in: ---
Developer Difficulty: ---


Attachments
Screenshot of the error message (67.36 KB, image/png)
2011-04-08 08:51 UTC, ars.kov
no flags Details
HTTP packet capture (40.44 KB, application/octet-stream)
2011-04-08 08:53 UTC, ars.kov
no flags Details

Note You need to log in before you can comment on or make changes to this issue.
Description ars.kov 2011-04-08 08:51:50 UTC
Created attachment 76318 [details]
Screenshot of the error message

How to reproduce:

1.	Tune Apache mod_dav with mod_dav_fs like this

LoadModule dav_module modules/mod_dav.so
LoadModule dav_fs_module modules/mod_dav_fs.so

DavLockDB "c:/TEMP"
Alias /apachedav "d:/ApacheDAV"
<Location /apachedav>
	AllowOverride All
	Options +Indexes +FollowSymLinks
	Order deny,allow
	Allow from All
	Dav On
</Location>
2.	Start Apache and ensure that all works correct, and place any MS Word documents to the d:/ApacheDAV. I’ve used a file with the name 11111.doc.
3.	Open Explorer in Windows 7 machine.
4.	Do right click on the Computer and select ‘Map Network Drive’ menu
5.	Map network drive with http://host/apachedav url
6.	Open previously placed document (11111.doc) with OOo
7.	Make some changes and save it via Ctrl+S.
8.	The error message box is appeared. See attached screenshot.

I’ve also attached a packet capture of 4-7. The cause of this bug is that an incorrect Lock-Token header is being sent with UNLOCK request from OO 3.3. The incorrect header value doesn't enclosed into "<", ">" and that a reason of HTTP/1.1 400 Bad Request. Please look at the last UNLOCK request. The lock token isn’t enclosed into <>.
According to RFC2518 a Lock-Token header defined as 

Lock-Token = "Lock-Token" ":" Coded-URL 

The Coded-URL is defined in the If-Header section as 

Coded-URL = "<" absoluteURI ">"


LOCK /apachedav/11111.doc HTTP/1.1
Cache-Control: no-cache
Connection: Keep-Alive
Pragma: no-cache
Content-Type: text/xml; charset="utf-8"
User-Agent: Microsoft-WebDAV-MiniRedir/6.1.7600
translate: f
Timeout: Second-3600
Content-Length: 214
Host: arsenyko

<?xml version="1.0" encoding="utf-8" ?><D:lockinfo xmlns:D="DAV:"><D:lockscope><D:exclusive/></D:lockscope><D:locktype><D:write/></D:locktype><D:owner><D:href>arsenyko-VM-w7\arsenyko</D:href></D:owner></D:lockinfo>

HTTP/1.1 200 OK
Date: Fri, 08 Apr 2011 08:20:54 GMT
Server: Apache/2.0.59 (Win32) DAV/2 PHP/5.2.11
Lock-Token: <opaquelocktoken:e461dc12-b256-c54a-a863-6389be1c2137>
Content-Length: 465
Keep-Alive: timeout=15, max=81
Connection: Keep-Alive
Content-Type: text/xml; charset="utf-8"

<?xml version="1.0" encoding="utf-8"?>
<D:prop xmlns:D="DAV:">
<D:lockdiscovery>
<D:activelock>
<D:locktype><D:write/></D:locktype>
<D:lockscope><D:exclusive/></D:lockscope>
<D:depth>infinity</D:depth>
<ns0:owner xmlns:ns0="DAV:"><ns0:href>arsenyko-VM-w7\arsenyko</ns0:href></ns0:owner><D:timeout>Second-3600</D:timeout>
<D:locktoken>
<D:href>opaquelocktoken:e461dc12-b256-c54a-a863-6389be1c2137</D:href>
</D:locktoken>
</D:activelock>
</D:lockdiscovery>
</D:prop>

UNLOCK /apachedav/11111.doc HTTP/1.1
Cache-Control: no-cache
Connection: Keep-Alive
Pragma: no-cache
User-Agent: Microsoft-WebDAV-MiniRedir/6.1.7600
translate: f
Lock-Token: opaquelocktoken:e461dc12-b256-c54a-a863-6389be1c2137      <<<-------- ERROR HERE!!!
Host: arsenyko

HTTP/1.1 400 Bad Request
Date: Fri, 08 Apr 2011 08:20:54 GMT
Server: Apache/2.0.59 (Win32) DAV/2 PHP/5.2.11
Content-Length: 316
Connection: close
Content-Type: text/html; charset=iso-8859-1

<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head>
<title>400 Bad Request</title>
</head><body>
<h1>Bad Request</h1>
<p>Your browser sent a request that this server could not understand.<br />
</p>
<hr>
<address>Apache/2.0.59 (Win32) DAV/2 PHP/5.2.11 Server at arsenyko Port 80</address>
</body></html>
Comment 1 ars.kov 2011-04-08 08:53:38 UTC
Created attachment 76319 [details]
HTTP packet capture
Comment 2 eric.savary 2011-04-14 13:04:53 UTC
Reset to Framework
Comment 3 Oliver-Rainer Wittmann 2012-06-13 12:17:54 UTC
getting rid of value "enhancement" for field "severity".
For enhancement the field "issue type" shall be used.
Comment 4 Kay 2013-06-03 23:05:38 UTC
Can we get an update on this one. Can we log which module it pertains to or ???