Web-based Distributed Authoring and Versioning (WebDAV) is an extension of the HTTP/1.1 protocol. The purpose of this protocol is to present Web content as a writable medium in addition to being a readable medium. WebDAV on Wikipedia and the WebDAV website provide information on this protocol. The WebDAV module implements the protocol for accessing Magnolia's repository on an author instance. This allows users to edit resources and templates on the client computer.

An example of WebDav in use is a designer editing CSS files located in the resources repository using a design tool installed on their computer. Another example is a developer editing Freemarker templates located in the templates workspace using a local tool that provides FreeMarker syntax highlighting and helper functions.

Download

WedDav is a community module. The module is not installed by default. You can download the module from Magnolia Store and our Nexus repository.

Installing

To install the WedDAV module, please see the general module installation instructions.

You need to install the following jars from the downloaded bundle:

  • magnolia-module-webdav-1.1.x
  • jackrabbit-webdav-2.4.5
  • jackrabbit-jcr-server-2.4.5

The module is dependent on a number of libraries that should already be installed in /<CATALINA_HOME>/webapps/<contextPath>/WEB-INF/lib.

  • commons-io-1.4.jar
  • jackrabbit-spi-2.4.4.jar
  • jackrabbit-spi-commons-2.4.5.jar
  • jcl-over-slf4j-1.6.4
  • slf4j-api-1.6.4.jar
  • tika-core-1.0.jar

Failure to add all of the jar files will lead to serious errors. For example, if you do not add the jackrabbit-jcr-server-2.4.5.jar, when you try to access http://localhost:8080/author/.webdav/templates you will see the following error:

java.lang.NullPointerException	
info.magnolia.cms.filters.ServletDispatchingFilter.doFilter(ServletDispatchingFilter.java:123) 
info.magnolia.cms.filters.AbstractMgnlFilter.doFilter(AbstractMgnlFilter.java:91)

Uninstalling

See general module uninstalling instructions and advice.

Video

Watch a video of WebDAV. The clip is from Magnolia 4.2, but is still relevant for 4.5.

Exposed workspaces

The module allows you to access the following workspaces in the magnoliarepository:

  • resources
  • templates
  • scripts
  • dam

The content available is the same content you see in AdminCentral:

  • Templating Kit > Resources.
  • Templating Kit > Templates.
  • Tools > Scripts.
  • Documents.

Once the client establishes a WebDAV connection to the repository, the content is displayed like local content and you can edit it accordingly. You cannot access files that are children of other files in AdminCentral.

Always create and delete files in AdminCentral in order to maintain consistency. The WedDAV client will display the new files. You can then edit them on the client computer.

Access URL

Use the URLs listed below to access a Magnolia workspace with WebDAV.

Format:

  • http://<host name>:<port>/<contextPath>/.webdav/<workspace>

Examples:

  • http://localhost:8080/magnoliaAuthor/.webdav/templates
  • http://localhost:8080/magnoliaAuthor/.webdav/resources
  • http://localhost:8080/magnoliaAuthor/.webdav/scripts
  • http://localhost:8080/magnoliaAuthor/.webdav/dam

Callback filter

The WebDAV module defines it's own security client callback filter that ensures Magnolia authentication when users access a workspace with WebDAV. Users login with their Magnolia credentials.

The filter is registered in the filter chain in /server/filters/securityCallback/clientCallbacks/webdav.

Properties:

  • webdav:
    • class: WebdavClientCallback is the callback for WebDAV clients. It accepts if the header is set correspondingly. Accepts is evaluated depending on WebDAV specific headers. Adds a realmName to the header of the response (like BasicClientCallback), but does not extend AbstractHttpClientCallback.
    • davAgentPattern: The pattern that triggers the filter.

Connecting to a workspace

You need to configure your client computer to communicate with Magnolia workspaces. Once the connection is made, content within the workspaces can be modified as if it resided on the client computer. Depending on the type of client, content can be edited directly or transferred to the client and then transferred back to the workspace. This allows users to use their preferred editing tools on the client computer instead of editing within Magnolia.

In most cases, the connection consists of mapping the client's internal filesystem to a workspace in the repository. Folders and files in the repository appear as any other folder or file on the client. There must be a separate mapping for each workspace.

OS X

To map a workspace in OS X:

  1. Go to Finder.
  2. Click Go > Connect To Server.
  3. Enter the workspace URL in the Server Address field.
  4. Click Connect.
  5. Enter Magnolia username and password when requested.

Repeat this procedure for each workspace.

Linux

To map a workspace in Linux:

  1. Install davfs2.
  2. Mount a workspace:
    mount -t davfs2 <directory>
    where directory is the directory that should be mapped to the workspace.
  3. Enter Magnolia username and password when requested.

Windows

Connecting to a WebDAV server with Windows is problematic. You can try the options below or connect using a WebDav client. 

Mapping a drive

To map a network drive:

  1. Click Start > Computer > Map network drive.
  2. Select a drive and enter the workspace URL in the Folder field.
  3. Click Finish.

If the mapping completes successfully you can see the selected drive in Windows Explorer. If the mapping does not complete successfully try adding the repository as a network location.

Network location

To add a network location:

  1. Click Start > Computer > Map network drive.
  2. Click Connect to a Web site that you can use to store your documents and pictures.
  3. Select Choose a custom network location.
  4. Enter the workspace URL in the Internet or network address field.

If neither methods succeeds, see the support matrix of alternative tools on the Magnolia Wiki.

Mini-Redirector is a Microsoft WebDAV client that is provided as part of Windows 8, Windows 7 and Windows Vista. The client is not installed by default on Windows Server 2008 and later versions. To enable it install the Desktop Experience feature.

If you are using BitKinex, for Server-Site Map configuration you need to set the Type path to Directory WebDAV. By default the path is set to File.

#trackbackRdf ($trackbackUtils.getContentIdentifier($page) $page.title $trackbackUtils.getPingUrl($page))