Index: src/java/edu/amc/sakai/user/JLDAPDirectoryProvider.java =================================================================== --- src/java/edu/amc/sakai/user/JLDAPDirectoryProvider.java (revision 40100) +++ src/java/edu/amc/sakai/user/JLDAPDirectoryProvider.java (working copy) @@ -947,6 +947,16 @@ // delegate to the LdapAttributeMapper since it knows the most // about how the LdapUserData instance was originally populated ldapAttributeMapper.mapUserDataOntoUserEdit(userData, userEdit); + + // This is not an entirely satisfactory solution, but it's important + // for all attribute mapping to respect this configuration (SAK-12705), + // so we centralized the logic rather than rely on swappable attribute + // mapping plugins. One wonders if a better solution might be to + // enforce case-sentivity rules where they matter, which is currently + // in the UDS. + if ( !(caseSensitiveCacheKeys) ) { + userEdit.setEid(toCaseInsensitiveCacheKey(userData.getEid())); + } } /**