Enabling a Writable WebID with WebDAV
In this post I will describe how you can enable write access to a file, specially a RDF one, via Apache’s HTTP server and the Web Distributed Authoring and Versioning protocol (WebDAV) extension to the HTTP protocol.
So, why would you want to do this?
I use WebDAV on my FOAF file to enable write access via Tim Berners-Lee’s Tabulator and Garlik’s foafbuilder. This technology allows me to write updates straight through the HTTP protocol, so that I don’t have to save the file to my local machine, and scp it over.
These are the configuration settings needed in your httpd.conf
file:
Setting up WebDAV on a whole directory:
`
<VirtualHost *:80>
ServerName www.foo.com
ServerAlias foo.com
Alias / /var/www/foo/public_html/
DAV On
AuthType Basic
AuthName “webdav”
Header set MS-Author-Via DAV
AuthUserFile /var/www/foo/passwd.dav
Require user bar
</Location>
</VirtualHost>
`
Enabling WebDAV for all files ending in .rdf:
`
<VirtualHost :80>
ServerName www.foo.com
ServerAlias foo.com
Alias / /var/www/foo/public_html/
<Files ~ “..rdf”>
DAV On
AuthType Basic
AuthName “webdav”
AuthUserFile /var/www/foo/passwd.dav
Header set MS-Author-Via DAV
ForceType application/rdf+xml
Require user bar
</Files>
</VirtualHost>
`
_It should be noted that the methods presented above allow for the files to be read normally via HTTP, as well as catering for writing via WebDAV.
_
WebDAV related HTTP Headers:
The correct HTTP header used to tell a client that a file is WebDAV enabled is:
MS-Author-via: DAV
Some of this information was taken from the ESW wiki’s article “EditingData”, and I should thank everyone who helped put it together.