I am trying to integrate my custom users/groups database with Openfire, as per the instructions here…
The authentication and user integrations were very easy to get working. Now, I’m running into a problem trying to get groups working as well. The groups are being partially exported, but they are not working correctly in the Openfire admin GUI.
To better illustrate the issue, I have come up with a reproducible that anyone can easily test using a file based HSQLDB instance as the custom database. Here are the repo steps:
Download the custom group-db database and extract to a temp dir. On my Windows install, I use C:\TEMP. This should result in the files being placed in C:\TEMP\group-db.
Download the openfire.xml file with the queries for the custom database providers. Place this in your Openfire home -> conf directory. Make sure to backup your existing openfire.xml file.
If you placed the group-db database files in a directory other than C:\TEMP, edit the openfire.xml and replace the file path in the HSQLDB with your own:
b. The test is the first part of the test.properties file name.
c. Example, if you placed it in Windows default Openfire dir, it would be jdbc:hsqldb:file:c:/progra~1/openfire/group-db/test;user=sa
Login to the admin GUI as *user1/password*.
Go to Users/Groups. There should be two users there, user1 and user2. Their user
properties pages lists their groups as “None”.
Go to Users/Groups -> Group Summary. There should be a group there called group1 with user1 and user2 as members.
Here are some screenshots from my install of what you should see:
Group summary view
Group detail view
User detail view
The basic problem is that while the information is partially listed in the admin GUI, it is not consistent. Ie, the groups list these users, but the users do not list the groups they are in. When logged in via the Spark client, users cannot see other users in their group, even if the group is made shared.
If I create this data manually in the admin GUI without using the custom database integration, the data is consistent between the user properties pages and the group pages, and the Spark client sees the other users in the shared group.
There are no exceptions in the error.log.