I found that it was quite easy setting up vcards. it took me about half a day to get all the mappings right, but i’'m quite happy with it now. mainly because I only have to keep a backup of my wildfire.xml file. The “physicalDeliveryOfficeName” attribute is the “Office” field. Utilizing this vcard, I was able to get all pertinent data into spark.
<ldap>
<host>server1.foo.com,server2.foo.com</host>
<port>389</port>
<usernameField>sAMAccountName</usernameField>
<nameField>displayName</nameField>
<emailField>mail</emailField>
<baseDN>DC=foo,DC=com</baseDN>
<adminDN>CN=jive,CN=Users,DC=foo,DC=com</adminDN>
<adminPassword>********</adminPassword>
<clientSideSorting>false</clientSideSorting>
<debugEnabled>false</debugEnabled>
<autoFollowReferrals>false</autoFollowReferrals>
<searchFilter><![CDATA[(&(sAMAccountName=)(objectClass=user)(!(userAccountControl:1.2.840.113556.1.4.803:=2))(!(sAMAccoun tName=$)))]]></searchFilter>
<groupNameField>cn</groupNameField>
<groupMemberField>member</groupMemberField>
<groupDescriptionField>description</groupDescriptionField>
<groupSearchFilter><![CDATA[(&(objectCategory=Group)(objectClass=group )(member=))]]></groupSearchFilter>
<posixMode>false</posixMode>
<vcard-mapping> <![CDATA[
<vCard xmlns=’‘vcard-temp’’>
<N>
<GIVEN attrs=“givenName”></GIVEN>
<MIDDLE attrs=“initials”></MIDDLE>
<FAMILY attrs=“sn”></FAMILY>
</N>
<NICKNAME attrs=“displayName”></NICKNAME>
<ADR>
<WORK/>
<LOCALITY attrs=“physicalDeliveryOfficeName”></LOCALITY>
<CTRY attrs=“co”></CTRY>
</ADR>
<TEL>
<WORK/>
<VOICE/>
<NUMBER attrs=“telephoneNumber”></NUMBER>
</TEL>
<TEL>
<HOME/>
<CELL/>
<NUMBER attrs=“mobile”></NUMBER>
</TEL>
<EMAIL>
<WORK/>
<PREF/>
<USERID attrs=“mail”></USERID>
</EMAIL>
<TITLE attrs=“title”></TITLE>
<ORG>
<ORGNAME attrs=“company”></ORGNAME>
</ORG>
<PHOTO/>
</vCard>
]]> </vcard-mapping>
</ldap>
<provider>
…
<vcard>
<className>org.jivesoftware.wildfire.ldap.LdapVCardProvider</className >
</vcard>
</provider>