Uploaded image for project: 'Sakai'
  1. Sakai
  2. SAK-17922

JLDAP provider prints a stack trace when multiple people have the same email address

    XMLWordPrintable

    Details

    • Type: Bug
    • Status: CLOSED
    • Priority: Major
    • Resolution: Fixed
    • Affects Version/s: 2.7.0
    • Fix Version/s: 2.9.0
    • Component/s: Providers
    • Labels:
      None

      Description

      The JLDAP provider only implements findUserByEmail not findUsersByEmail. This was reported on the sakai-dev list a few weeks ago.
      ================
      We are running into an issue with the mail archive tool in Sakai 2.6.x
      where permission to send an email fails because there are multiple
      accounts with the same email address in our LDAP. I found a resolved bug
      (#SAK-2025), but it seems to only apply to Sakai 2.1.

      The stack trace (included below) shows that the JLDAP provider is being
      called with a searchDirectoryForSingleEntry which would seem to be the
      problem. Should we be using in a different release of the archive tool?
      I have tested this behavior on 72309 and 69904 of mailarchive.

      Thanks,

      Robert.

      2010-01-22 13:01:09,148 ERROR default Worker #3
      edu.amc.sakai.user.JLDAPDirectoryProvider - findUserByEmail(): failed
      [email = user@csc.uvic.ca]
      LDAPException: Sizelimit Exceeded (4) Sizelimit Exceeded
      LDAPException: Matched DN:
      at com.novell.ldap.LDAPResponse.getResultException(Unknown Source)
      at com.novell.ldap.LDAPResponse.chkResultCode(Unknown Source)
      at com.novell.ldap.LDAPSearchResults.next(Unknown Source)
      at
      edu.amc.sakai.user.JLDAPDirectoryProvider.searchDirectory(JLDAPDirectoryProvider.java:941)
      ================
      In my follow-up:
      "It appears as if the jldap provider doesn't implement the UsersShareEmailUDP interface. (At least not in any version of the source I can find, even though it was mentioned in that old SAK you described).

      In the version of jldap provider, it is just implementing the call for findUserByEmail (for a single user) and calling searchDirectory with a parameter of 1 for maxResults. (Which is appropriate, but probably causing the error when it finds more than 1)

      853 List results = searchDirectory(filter, conn,
      854 mapper,
      855 searchResultPhysicalAttributeNames,
      856 searchBaseDn,
      857 1);

      ================
      There were no replies to this.

        Gliffy Diagrams

          Zeplin

            Attachments

              Issue Links

                Activity

                  People

                  Assignee:
                  steve.swinsburg Steve Swinsburg
                  Reporter:
                  jonespm Matthew Jones
                  Votes:
                  0 Vote for this issue
                  Watchers:
                  3 Start watching this issue

                    Dates

                    Created:
                    Updated:
                    Resolved:

                      Git Integration