Uploaded image for project: 'Directory ApacheDS'
  1. Directory ApacheDS
  2. DIRSERVER-193

Search request BER parser incorrectly parses complex filters.

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Closed
    • Blocker
    • Resolution: Fixed
    • pre-1.0
    • pre-1.0
    • ldap
    • None
    • NA

    Description

      Using the following search from an LDAP client, like Softera's browser or OpenLDAP's ldapsearch, search for something like the following filter:

      (& (a=A) (| (b=B) (c=C) ) )

      The resulting expression object after the BER parser is finished is:

      (& (| (c=C) (b=B) (a=A) ) )

      This is obviously not the correct expression and results in bobus results.

      I thought at first it might have been the expression object serializing to a string form that had issue, but passing the same filter string through the commons.filter.FilterParserImpl produces the correct expression object and the correct serialized string.

      I am attempting to debug the problem further. If I can produce a patch I will post it, but if someone has a better idea of what is going please tackle this.

      Attachments

        1. AND-OR.patch
          4 kB
          Jacob Barrett
        2. AND-OR-2.patch
          2 kB
          Jacob Barrett

        Activity

          People

            akarasulu Alex Karasulu
            jbarrett Jacob Barrett
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: