Bedework CardDav
Overview
The bedework carddav server can deliver personal addressbooks stored within the system or act as a gateway to other sources of directory information. It can deliver both V3 and V4 vcards.
Carddav servers and clients can handle these two different sources of information. The primary difference between an address-book and a directory is that address-books may be downloaded and cached by the client whereas directories are only searched.
All configuration is done via XML files that can be edited or modified via JMX. The set of configuration files is found in "jboss-5.1.0.GA/server/default/conf/bedework/carddavConfig/".
Within that directory is the file "config.xml" and 2 directories, "dirhandlers/" and "contexts/".
The config.xml file should not be changed.
Contexts
Configuration files in the "contexts/" directory relate to the primary forms of access - authenticated or unauthenticated. the file pubcarddav.xml provides configuration for unauthenticated access. There should be little need to modify these files beyond possible changes to the "webaddrServicePropertiesList" entry. This provides a list of properties that should be returned by default by the web service.
Directory handlers.
The carddav server delivers content out of a hierarchy of information. The shape of that hierarchy is determined by the configuration. Different parts of the hierarchy are typically delivered by different directory handlers. For example, as configured, the "/directory/users" branch is a gateway to the enterprise user directory - delivering vcards based on the account information.
Principal searches
The caldav server uses carddav to provide information about principals via teh principal-property-search report. A query of the form
<?xml version="1.0" encoding="utf-8" ?> <D:principal-property-search xmlns:D="DAV:" xmlns:C="urn:ietf:params:xml:ns:caldav" xmlns:CD="urn:ietf:params:xml:ns:carddav"> <D:property-search> <D:prop> <D:displayname/> </D:prop> <D:match>dougl</D:match> </D:property-search> <D:prop> <D:displayname/> <C:calendar-user-address-set/> <CD:address-data content-type="application/vcard+json" /> </D:prop> </D:principal-property-search>
will result in a carddav query. Currently the url used is built in to the system and is /pubcarddav/directory/. The query has the form
<?xml version="1.0" encoding="UTF-8" ?> <C:addressbook-query xmlns:C="urn:ietf:params:xml:ns:carddav" xmlns="DAV:"> <prop> <getetag/> <C:address-data content-type="application/vcard+json"/> </prop> <C:filter test="anyof"> <C:prop-filter name="FN"> <C:text-match collation="i;unicode-casemap" match-type="contains">dougl</C:text-match> </C:prop-filter> </C:filter> </C:addressbook-query>
Â
Â
Â
Â
Bedework Enterprise Calendar Server, version 3.10