The behaviour described in the previous comment (namely, that Crowd does not re-create the bi-directional link if the LDAP server does not produce it) is not new. It has been the behaviour for years when these two conditions are met:
- You're using a LDAP connector (other than AD) with the Use the user membership attribute option checked, and
- Your LDAP server does publish the 'memberOf' attribute from the user side, but does not publish a symmetrical 'member' attribute from the group side.
The Use the user membership attribute means: use the 'memberOf' attribute to list the users-of-a-group, but use the usual query (that is, the 'member' attribute of the group) when querying the list of groups-of-user. It's an optimisation for the case in which we know that both attributes are available in the LDAP server.
LDAP servers can maintain these bi-directional links automatically if configured to. For instance, in OpenLDAP you can use overrides.
If the LDAP server does not publish the bi-directional links (let's say it only publishes the 'memberOf' attribute from the user to the group, but not the 'member' from the group to the user), then enabling Use the user membership attribute will produce divergent results when querying groups-of-user and users-of-group, as the relationship will be only visible from one side.
This was not affecting products other than Crowd (until they upgraded to Crowd 2.7), because products were using cached directories. Cached directories are not affected because:
- When the cache is synchronised, the membership information is always retrieved in only one direction (using findDirectMembersOfGroup()). Therefore, there was no divergence.
- Once cached, the membership information is symmetrical in the database, therefore all queries share the same view of the information.
After upgrading to Crowd 2.7 and picking CWD-3429, all products suffer a regression because when the user authenticates, the products make a query to findGroupMembershipNames which (except for AD), delegates to findGroupMembershipNamesOfUserViaMemberDN. This method always uses the 'member'/'uniqueMember' attribute, never the 'memberOf' attribute (regardless of the Use the user membership attribute setting). Therefore, if the LDAP server is not publishing the 'member' attribute of the group (only the 'memberOf' attribute of the user), then the query will not retrieve the groups, causing them to be removed from the user in the cache and potentially preventing the user from logging in.
it.nat I suspect you are talking about in JIRA not in Crowd?
This particular bug report pertains to the problem in Crowd ... the same bug is also reported against JIRA at
JRA-36555JRA-36555states that this bug is fixed in JIRA 6.2 ... if you are still seeing problems I suggest you raise a support request.