Bug #2747
closedAuthLdap.getGroups() doesn't follow referrals correctly when building group list
0%
Description
EML allows for both user and group-based access control, but as of Metacat 1.6.x, access control for groups is only partially functional. The problem arises in searching for groups that are defined in LDAP databases that are referrals in the main ecoinformatics LDAP tree.
Given the following two EML access directives:
<access order="allowFirst" scope="document"
authSystem="ldap://ldap.ecoinformatics.org:389/dc=ecoinformatics,dc=org">
<allow>
<principal>
cn=marine,dc=ecoinformatics,dc=org
</principal>
<permission>read</permission>
</allow>
</access>
and
<access order="allowFirst" scope="document"
authSystem="ldap://ldap.ecoinformatics.org:389/dc=ecoinformatics,dc=org">
<allow>
<principal>
cn=data-managers,o=PISCOGROUPS,dc=ecoinformatics,dc=org
</principal>
<permission>read</permission>
</allow>
</access>
a search for groups will succeed for the group cn=marine, but will fail for the cn=data-managers group, and all other subsequent groups. This occurs after a NamingException is thrown when searching for group names in LDAP databases that are part of the ecoinformatics ldap tree as referrals.