Details
Description
One of the users wants to migrate his repository from Jackrabbit 2 to Oak. He uses LDAP for authentication. The LDAP synchronization in Jackrabbit 2 is configured in such manner, that both principal id and authorizable name is set to the DN (eg. CN=my-group,OU=abc,...).
After migration to Oak LDAP users can't login. The reason is that during the login, the DefaultSyncContext tries to synchronize all groups memberships and create missing groups. By default it uses CN as the group name and tries to find it. It fails, because the migrated group has a name created with its DN. It assumes that the group doesn't exist and then wants to create it - which fails as well, because group with the given principal name already exists. As a result, the whole login process fails.
The LDAP attribute to be used as the group name can be configured. However, the DN is not an attribute, so setting group.nameAttribute="dn" in LdapProviderConfig results in a NullPointerException.
I think one thing can be improved here:
1. It should be possible to use DN as the group.nameAttribute.
2. DefaultSyncContext should try to find a group using its principal name rather than group id.