This plugin allows users to store an avatar in their profile when Openfire is configured to use an LDAP directory as VCard provider.
Why would I need this plugin?
Openfire has the ability to use an LDAP server (in my case Active Directory) as a user and authentication backend. Users in the directory may then instantaneously login to the server without the need for an administrator to create them on the Openfire system. Additionally, the users details (names, address, phone numbers, etc.) are populated with data from the LDAP directory. This details are then provided to other users XMPP clients as VCards, which can be shown using the client.
It is important to note that users can not edit their profile when using LDAP VCards in Openfire. Unfortunately, the users avatars are also stored in the users VCards, which means users cannot upload an avatar to their profile if Openfire is configured to use LDAP VCards. This limitation is still an open issue. This is why I created this plugin. See this thread for additional information.
What does it do?
This plugin simply allows user to add an avatar to their profile while leaving all other user details intact. It does so by saving the VCard in the Openfire database (using the default Openfire VCard provider). On VCard retrieval the plugin adds the avatar from the VCard in the database to the users LDAP VCard.
Where do I get it?
You may download the latest version using the links below. The plugin is compatible with Openfire up to 3.2.2 (and probably future versions as well).
In this version, you don't have to manually copy the plugin-ldapvcardavatar.jar into wildfires lib directory anymore. The classpath is extended at runtime to include the required jar automatically. Additionally, you don't have to change the vCard provider in wildfire.xml in order to use the custom provider. The provider is now automatically activated when the plugin is installed. On plugin removal, the original LdapVCardProvider is restored.
How do I install it?
Copy ldapvcardavatar.jar into the plugins directory of your Openfire installation. The plugin will then be deployed automatically.
To upgrade to a new version, copy the new ldapvcardavatar.jar file over the existing file. Currently it might also be required to restart Openfire after the jar has been replaced. But this is just an assumption.
Users using v1.0.2 have to remove the plugin-ldapvcardavatar.jar from Openfires lib directory and restart Openfire before they replace the current plugins jar file.
When an avatar is set using the XMPP client a record in the Openfire database table jiveVCard is created and the avatar is shown in the profile. However, when the XMPP client is restarted, the avatar is not visible anymore? Make sure the vCard mapping (<vcard-mapping> element) in the Openfire configuration conf/openfire.xml does not contain a <PHOTO> element.