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

Entry with an escaped comma in DN not found in searches with some filters

    Details

    • Type: Bug
    • Status: Closed
    • Priority: Minor
    • Resolution: Fixed
    • Affects Version/s: 1.5.4
    • Fix Version/s: 1.5.5
    • Component/s: None
    • Labels:
      None
    • Environment:
      Windows XP
      Java(TM) SE Runtime Environment (build 1.6.0_10-b33)
      ApacheDS 1.5.4

      Description

      I use an out of the box ApacheDS 1.5.4 with server.xml unchanged, context entry for dc=example,dc=com created.

      Adding the following entry is successful (LDIF import)

      dn: cn=Amos\,Tori,dc=example,dc=com
      sn: Amos
      objectClass: person
      objectClass: top
      cn: Tori Amos

      If I perform searches, some find it, for instance:

      $ ldapsearch -D "uid=admin,ou=system" -w secret -h localhost -p 10389 -b "dc=example,dc=com" -s one "(objectclass=person)"
      version: 1
      dn: cn=Amos\,Tori,dc=example,dc=com
      objectClass: person
      objectClass: top
      cn: Tori Amos
      cn: Amos\,Tori
      sn: Amos
      $

      But the following fails (no entry found):

      $ ldapsearch -D "uid=admin,ou=system" -w secret -h localhost -p 10389 -b "dc=example,dc=com" -s one "(cn=Amos,Tori)"
      $

      According to Open Group's compliance tests, it should return the entry. I have tried to verify this by reading RFC 2253 and RFC 4514, esacping with a bachslash is allowed (I am not 100% certain about the filter ...).

      Note that this one here does not return an entry either.

      $ ldapsearch -D "uid=admin,ou=system" -w secret -h localhost -p 10389 -b "dc=example,dc=com" -s one "(cn=Amos\,Tori)"
      $

      1. tori.ldif
        0.1 kB
        Stefan Zoerner

        Activity

        Hide
        szoerner Stefan Zoerner added a comment -

        LDIF file with test data

        Show
        szoerner Stefan Zoerner added a comment - LDIF file with test data
        Hide
        seelmann Stefan Seelmann added a comment -

        The problem is that the user provided RDN value "Amos\,Tori" (including the backslash) is added to the entry's attributes. However the unescaped value must be added.

        Show
        seelmann Stefan Seelmann added a comment - The problem is that the user provided RDN value "Amos\,Tori" (including the backslash) is added to the entry's attributes. However the unescaped value must be added.
        Hide
        seelmann Stefan Seelmann added a comment -

        For the add operation the SchemaInterceptor class handles the case when the RDN attribute+value isn't included in the entry's attributes and adds this attribute+value in that case.

        On the other side, for the rename operation, the missing RDN attribute+value is added in the JdbmStore class.

        My question is: where is the better place to handle such stuff? I think it would be better to handle it in the SchemInterceptor because when it is handled in the Store then it must be re-implemented for each Store.

        Show
        seelmann Stefan Seelmann added a comment - For the add operation the SchemaInterceptor class handles the case when the RDN attribute+value isn't included in the entry's attributes and adds this attribute+value in that case. On the other side, for the rename operation, the missing RDN attribute+value is added in the JdbmStore class. My question is: where is the better place to handle such stuff? I think it would be better to handle it in the SchemInterceptor because when it is handled in the Store then it must be re-implemented for each Store.
        Hide
        elecharny Emmanuel Lecharny added a comment -

        IMO, the place to handle such cases should be the NormalizationInterceptor. Everything after this interceptor should be considered as normalized values.

        Show
        elecharny Emmanuel Lecharny added a comment - IMO, the place to handle such cases should be the NormalizationInterceptor. Everything after this interceptor should be considered as normalized values.
        Show
        seelmann Stefan Seelmann added a comment - Fixed here: http://svn.apache.org/viewvc?rev=771954&view=rev

          People

          • Assignee:
            seelmann Stefan Seelmann
            Reporter:
            szoerner Stefan Zoerner
          • Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved:

              Development