CommuniGate Pro
Version 6.4
 

WebDAV Module

The WebDAV protocol is an extension of the HTTP protocol. Various clients use it to access and manage various data resources.
The CommuniGate Pro WebDAV module implements authenticated access to Account File Storage, Calendar, Task, and Contacts mailboxes.

The CommuniGate Pro WebDAV implementation is a part of the HTTP User module, and that module settings are applied to the WebDAV functions, too.



Root Element

The WebDAV component provides a read-only "root" element, with the following URLs:
http://servername[:port]/
or
https://servername[:port]/ URL
where port is a HTTP User Module port (8100, 9100 by default).

Various WebDAV (CalDAV, CardDAV, etc.) clients can be configured to use this Root Element. They can retrieve the Root Element properties, which direct them to other URLs (realms), implementing the respective protocols.

Configuring the Root Element Module

The WebDAV protocol works over the HTTP protocol, using the HTTP User Module. Open the HTTP User Module settings, and find the Sub-Protocols panel:

Sub-Protocols
 AccessLog Level
RootDAV:

Use the RootDAV Log Level setting to specify the type of information the Root Element DAV module should put in the Server Log.
The Root Element DAV module records in the System Log are marked with the RootDAV tag.

The Access setting specifies who can access the RootDAV service.


Principal Elements

The WebDAV protocol and protocols based on WebDAV allow users to access resources of other users if the proper access rights have been granted.
To support WebDAV ACLs (Access Control Lists), each CommuniGate Pro users is granted a unique URL that represents that user in the Access Control Lists. These URLs are:
http://servername[:port]/UserDAV/accountName@domainName
or
https://servername[:port]/UserDAV/accountName@domainName/ URL
where port is a HTTP User Module port (8100, 9100 by default).

Configuring the Principal Elements DAV Module

The WebDAV protocol works over the HTTP protocol, using the HTTP User Module. Open the HTTP User Module settings, and find the Sub-Protocols panel:

Sub-Protocols
 AccessLog Level
UserDAV:

Use the UserDAV Log Level setting to specify the type of information the Principal Elements DAV module should put in the Server Log.
The Principal Elements DAV module records in the System Log are marked with the UserDAV tag.

The Access setting specifies who can access the Principal Elements DAV Module service.


File Access

The CommuniGate Pro Server implements access to Account File Storage via the WebDAV protocol (FileDAV).

All FileDAV data requests must be authenticated: the user should specify the Account name and password. The Account and its Domain must have the WebSite Service enabled.

The "root" of the user File Storage has the following URL:
http://servername[:port]/WebDAV/
or
https://servername[:port]/WebDAV/
where port is a HTTP User Module port (8100, 9100 by default).

To Access the File Storage of some other user, the following URLs should be used:


http://servername[:port]/WebDAV/~accountName/
or
https://servername[:port]/WebDAV/~accountName/
where port is a HTTP User Module port (8100, 9100 by default), and the accountName is the name of the Account to access. If this Account is located in a different Domain, use accountName@domainName instead.

Configuring the FileDAV Module

The WebDAV protocol works over the HTTP protocol, using the HTTP User Module. Open the HTTP User Module settings, and find the Sub-Protocols panel:

Sub-Protocols
 AccessLog Level
FileDAV:

Use the FileDAV Log Level setting to specify the type of information the FileDAV module should put in the Server Log.
The FileDAV module records in the System Log are marked with the FileDAV tag.

The Access setting specifies who can access the FileDAV service.


CalDAV

The CommuniGate Pro Server supports the CalDAV protocol, a WebDAV protocol extension.

This protocol allows CalDAV clients to access and modify Calendaring and Tasks data stored in the user Account(s).

A full-featured CalDAV client can detect the proper URL for CalDAV operations itself, when it is directed to the WebDAV Root element:
http://servername[:port]/
or
https://servername[:port]/ URL
where port is a HTTP User Module port (8100, 9100 by default).

If the CalDAV client cannot detect the CalDAV URL location, it should be specified explicitly:

http://servername:port/CalDAV/
https://servername:port/CalDAV/

Some CalDAV clients need to be configured to access a particular Calendar or Task collection. Any Calendaring or Tasks Mailbox can be accessed using the following URLs:

http://servername:port/CalDAV/mailboxName/
https://servername:port/CalDAV/mailboxName/

If the mailboxName ends with the ics file extension, the Server removes that extension.

All CalDAV data requests must be authenticated: the user should specify the Account name and password. The Account and its Domain must have the WebCal Service enabled.

If the user Domain Name or Domain Alias name is mail.company.com, the HTTP User port is 80, and the Mailbox name is Calendar, the access URL is

http://mail.company.com/CalDAV/Calendar
or
https://mail.company.com/CalDAV/Calendar.ics

Any Calendar-type or Tasks-type Mailbox can be accessed this way. To access a Mailbox in a different Account, the full Mailbox name should be specified:

http://mail.company.com/CalDAV/~username/Calendar/
The authenticated user should have proper access rights to retrieve and/or modify data in Mailboxes belonging to other users.

The CalDAV module checks the Mailbox Subscription list and reports all Calendar-type Mailboxes in other Accounts included into this list.

The CalDAV module stores Calendar and Tasks attachments in the Account File Storage, inside the private/caldav/ directory.

Configuring the CalDAV Module

The CalDAV protocol works over the HTTP protocol, using the HTTP User Module. Open the HTTP User Module settings, and find the Sub-Protocols panel:

Sub-Protocols
 AccessLog Level
CalDAV:

Use the CalDAV Log Level setting to specify the type of information the CalDAV module should put in the Server Log.
The CalDAV module records in the System Log are marked with the CalDAV tag.

The Access setting specifies who can access the CalDAV service.

Using the Publish/Subscribe (ICS) method

The CommuniGate Pro HTTP User module implements an older, pre-CalDAV method of dealing with data in Calendar and Task Mailboxes.
The module allows client applications to retrieve all items using the iCalendar format. This operation is often called subscribing to Calendar data.
The module also allows client applications to rewrite the Mailbox content new iCalendar-formatted data (to publish calendaring data).

The URL for Calendaring data is:

http://servername:port/CalendarData/mailboxName
https://servername:port/CalendarData/mailboxName
where port is the HTTP User port (8100, 9100 by default).
If the mailboxName ends with the ics file extension, the server removes that extension.
If the mailboxName is empty, the Server uses the Default Calendar name.

All Calendaring data requests must be authenticated: the user should specify the Account name and password. The Account and its Domain must have their WebCal Service enabled.

If the user Domain Name or Domain Alias name is mail.company.com, the HTTP User port is 80, and the Mailbox name is Calendar, the access URL is
http://mail.company.com/CalendarData/Calendar
or
http://mail.company.com/CalendarData/Calendar.ics

Any Calendar-type or Tasks-type Mailbox can be accessed this way. To access a Mailbox in a different Account, the full Mailbox name should be specified:

http://mail.company.com/CalendarData/~username/Calendar.ics
The authenticated user should have proper access rights to retrieve and/or modify data in Mailboxes belonging to other users.

The HTTP module supports the following HTTP operations for the /CalendarData/ realm:

  • GET/HEAD: the Mailbox is parsed, and all items containing iCalendar information are retrieved as one VCALENDAR object with VEVENT and VTODO elements. If the Mailbox is a foreign one, the authenticated user must have the Select access right for that Mailbox.
  • DELETE: the Mailbox is parsed and all items containing iCalendar information are removed. If the Mailbox is a foreign one, the authenticated user must have the Delete access right for that Mailbox.
  • PUT: the HTTP request body is parsed as a VCALENDAR object. All parsed VEVENT and VTODO elements are added to the Mailbox as separate items. If parsing of any element failed, no item is added. If the Mailbox is a foreign one, the authenticated user must have the Insert access right for that Mailbox.

Some applications do not support the DELETE method. These applications expect that the PUT operation removes all previous information from the Calendar Mailbox.
To support these applications, use the CalendarDataDel realm instead of the CalendarData realm, or include the DeleteAll="1" parameter into the URL.
In this case each PUT operation will be preceded with a virtual DELETE operation removing all existing iCalendar items from the Mailbox.


CardDAV

The CommuniGate Pro Server supports the CardDAV protocol, a WebDAV protocol extension.

This protocol allows CardDAV clients to access and modify Contacts data stored in the user Account(s).

A full-featured CardDAV client can detect the proper URL for CardDAV operations itself, when it is directed to the WebDAV Root element:
http://servername[:port]/
or
https://servername[:port]/ URL
where port is a HTTP User Module port (8100, 9100 by default).

If the CardDAV client cannot detect the CardDAV URL location, it should be specified explicitly:

http://servername:port/CardDAV/
https://servername:port/CardDAV/

Some CardDAV clients need to be configured to access a particular Contacts collection. Any Contacts Mailbox can be accessed using the following URLs:

http://servername:port/CardDAV/mailboxName/
https://servername:port/CardDAV/mailboxName/

If the mailboxName ends with the vcf file extension, the Server removes that extension.

All CardDAV data requests must be authenticated: the user should specify the Account name and password. The Account and its Domain must have the WebSite Service enabled.

If the user Domain Name or Domain Alias name is mail.company.com, the HTTP User port is 80, and the Mailbox name is Contacts, the access URL is

http://mail.company.com/CardDAV/Contacts
or
https://mail.company.com/CardDAV/Contacts.vcf

Any Contacts-type Mailbox can be accessed this way. To access a Mailbox in a different Account, the full Mailbox name should be specified:

http://mail.company.com/CardDAV/~username/Contacts/
The authenticated user should have proper access rights to retrieve and/or modify data in Mailboxes belonging to other users.

The CardDAV module checks the Mailbox Subscription list and reports all Contacts-type Mailboxes in other Accounts included into this list.

Configuring the CardDAV Module

The CardDAV protocol works over the HTTP protocol, using the HTTP User Module. Open the HTTP User Module settings, and find the Sub-Protocols panel:

Sub-Protocols
 AccessLog Level
CardDAV:

Use the CardDAV Log Level setting to specify the type of information the CardDAV module should put in the Server Log.
The CardDAV module records in the System Log are marked with the CardDAV tag.

The Access setting specifies who can access the CalDAV service.


CommuniGate Pro Guide. Copyright © 2020-2023, AO StalkerSoft