Tables Listing in Confluence
mysql> show tables; +----------------------+ | Tables_in_confluence | +----------------------+ | ATTACHMENTDATA | | ATTACHMENTS | | BANDANA | | BODYCONTENT | | CLUSTERSAFETY | | CONFANCESTORS | | CONFVERSION | | CONTENT | | CONTENTLOCK | | CONTENT_LABEL | | CONTENT_PERM | | CONTENT_PERM_SET | | DECORATOR | | DRAFT | | EXTRNLNKS | | INDEXQUEUEENTRIES | | LABEL | | LINKS | | NOTIFICATIONS | | OS_PROPERTYENTRY | | PAGETEMPLATES | | PLUGINDATA | | SPACEGROUPS | | SPACEPERMISSIONS | | SPACES | | TRACKBACKLINKS | | external_entities | | external_members | | groups | | hibernate_unique_key | | local_members | | os_group | | os_user | | os_user_group | | users | +----------------------+
How Confluence Stores Its Users and Groups
Confluence stores its users and groups information in four tables, namely users, os_user, os_group and os_user_group.
mysql> describe users; +----------+--------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +----------+--------------+------+-----+---------+-------+ | id | bigint(20) | | PRI | 0 | | | name | varchar(255) | | | | | | password | varchar(255) | YES | | NULL | | | email | varchar(255) | YES | | NULL | | | created | datetime | YES | | NULL | | | fullname | varchar(255) | YES | | NULL | | +----------+--------------+------+-----+---------+-------+
mysql> describe os_group; +-----------+--------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +-----------+--------------+------+-----+---------+-------+ | id | bigint(20) | | PRI | 0 | | | groupname | varchar(255) | | UNI | | | +-----------+--------------+------+-----+---------+-------+
mysql> describe os_user; +----------+--------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +----------+--------------+------+-----+---------+-------+ | id | bigint(20) | | PRI | 0 | | | username | varchar(255) | | UNI | | | | passwd | varchar(255) | YES | | NULL | | +----------+--------------+------+-----+---------+-------+
mysql> describe os_user_group; +----------+------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +----------+------------+------+-----+---------+-------+ | group_id | bigint(20) | | PRI | 0 | | | user_id | bigint(20) | | PRI | 0 | | +----------+------------+------+-----+---------+-------+
Reference
- Atlassian LDAP Integration contact person: Nick Faiz
- About Atlassian User and LDAP integration

- Enable LDAP Authentication on Confluence 2.0

- Enable LDAP authentication for Confluence 2.1

I think it's more the tables "local_members" (which describes the link between the userid and the groupid), users (which describes the users) and groups (which describes the groupid and the groupname).
From the documentation I read on your site, the better is to use nested mapping to link the tables (user:id =>local_members:userid, group:id=>local_members:groupid).
I don't really understand the principle.
Let me explain :
In my mapping.xml file, if I have 3 sources :
When I bind the field groups.id to usergroups.groupid, and users.id to usergroups.userid . When I try to reach groups.groupname, will I get the groupname of the groupid which is linked to the users' id group, even if there is more than one field related to the users's id ?
example :
user "carlos" has an id of 3324.
group "administrator" has an id of 5555.
group "confluence-users" has an id of 6666.
If I browse the usergroups table, for userid=3324 (carlos), I have 2 fields : groupid = 5555 and groupid=6666 because carlos belongs to confluence-users and administrator.
When mapping all the values and creating ldap groups, I should have in the confluence-users' group the attribute "member" : cn="carlos,ou=Users,dc=example,dc=com"
AND in the administrator's group also an attribute "member" : cn="carlos,ou=Users,dc=example,dc=com" because carlos belongs to the 2 groups.
Is it possible to do so ?
(I'm stopping here because I don't even know if I will get an answer posting here... ask for further details if you want)
Thanks.
Steeve