powered by Jive Software

LDAP and vCards

This is doing my head in!

I have an Openfire 3.8.1 system connected to an LDAP backend that was working fine (some of the vcard fields didn’t populate but whatever…) about two months ago. I am only now looking at the system again as we are about to go company wide with the system and I found that the avatars stopped working?? Nothing has changed on either the system or LDAP!

My first setup was to set ldap.override.avatar = false to see what happened. I rebooted the system to make sure the change applied and BAM! Everything broke vCard-wise. All of a sudden I am seeing avatars from ages ago that users uploaded themselves and other changes like my Spark client remember settings that I applied in Jabber clients from ages past on other machines!

Changing ldap.override.avatar = true and rebooting has not fixed a thing!

I am convinced there is some kind of voodoo happening on the server where it remembers random things and only applies changes when it sees fit!

My questions are:

  1. How do I force changes to take place whithout a reboot?
  2. Where does this old information get stored (client or server) and how do I delete it?!
  3. Is there some kind of USEFUL debugging that I can perform to figure out why the vCards aren’t working?

I am using both the Spark client and Pidgin (which has a somewhat useful debug screen).



Things I have learned so far:

  • Nothing really to do with vCards, but I incase someone else has this problem… There are is a property called** ldap.groupNameField** which I was hoping would be the Name displayed to the user. It is not. My LDAP system has ugly group names like IT-Group-IM which I would like presented as “IT Unit” so I used another attribute in the group object called displayName. Once I changed **ldap.groupNameField **to displayName the group rosters broke completely. I then changed **l****dap.groupSearchFilter **to
    (&(displayName={0})(objectclass=groupOfNames)…) and even (&(|(cn={0})(displayName={0}))(objectclass=groupOfNames)…) which kind worked… I could see the groups listed under Users/Groups and the users inside the groups but the rosters would not show up in any client on any system… I think the problem is Openfire can look at a group and see the users, but when it look at the user it can’t find the groups…
  • Under Server | Client Management | Client Features there is an option Avatar/vCard which states is for Spark clients only but if this setting is not set, then I found that vCards don’t show up in any client. (whether the vCard shows the correct info is a different story)
  • The** ldap.vcard-mapping property** needs to be put in with no spaces or line breaks.
  • It looks like you should be able to clear the Server’s Cache under Server | Server Manager | Cache Summary. However, I have found that you really need to perform a reboot in order to make sure that the cache is gone.
    Dispite all of this I have found that a photo, that a user upload months ago as his avatar, is STILL showing up as his avatar! I have even gone to the lengths of deleting every line in the ebedded-db/openfire.script that contained “INSERT INTO OFVCARD” and rebooted. This did not help and the old avatars are still present.

I’m convinced that there is a cache on the Client which I have not found yet or god hates me!