Issue Details (XML | Word | Printable)

Key: DIRSERVER-766
Type: Bug Bug
Status: Closed Closed
Resolution: Fixed
Priority: Major Major
Assignee: Emmanuel Lecharny
Reporter: Kirill Kovalenko
Votes: 0
Watchers: 0
Operations

If you were logged in you would be able to see more operations.
Directory ApacheDS

uniqueMember attribute compare does not seem to work properly (uniqueMemberMatch is not implemented?)

Created: 24/Oct/06 03:19 PM   Updated: 15/Feb/09 01:36 PM
Return to search
Component/s: None
Affects Version/s: 1.5.0
Fix Version/s: 1.5.1

Time Tracking:
Not Specified

File Attachments:
  Size
File example.ldif 2006-11-07 08:38 AM Kirill Kovalenko 62 kB
Environment: Windows XP SP2, Java 1.5.06

Resolution Date: 24/Aug/07 11:57 PM


 Description  « Hide
When it comes to search attributes with syntax 1.3.6.1.4.1.1466.115.121.1.34, like uniqueMember, the server does not seem to work properly. For example, in my environment, the (uniqueMember=uid=kvaughan,ou=People,dc=example,dc=com) search filter brings the search result while (uniqueMember=uid=kvaughan, ou=People, dc=example, dc=com) does not. The only difference here is spaces between RDN components in the search filter value. Server should normalize uniqueMember values before compare takes place.

 All   Comments   Work Log   Change History   Subversion Commits      Sort Order: Ascending order - Click to sort in descending order
Emmanuel Lecharny added a comment - 26/Oct/06 12:55 PM
Have you escaped the '=' char in the filter ?


Emmanuel Lecharny added a comment - 06/Nov/06 11:32 PM
Is this still an issue? May we have an LDIF file which can be imported and a scenario to reproduce the problem, or is this just a syntax problem with the not escaped '=' ?

Will wait one more week to have further information, then we may close the issue...

Kirill Kovalenko added a comment - 07/Nov/06 08:35 AM
No. it's not a problem with escaping. We used standard example.ldif file from Netscape DS 6.01 installation. The problem, I believe, is with the the comparer used by the server.

Kirill Kovalenko added a comment - 07/Nov/06 08:38 AM
This is a slightly modified standard example file that comes with Netscape DS. It can be imported to Apache DS to reproduce the issue.

Emmanuel Lecharny added a comment - 07/Nov/06 02:03 PM
Thanks for the ldif attachment.

I confirm that it is a bug in the server. It seems that the comparizon using DistinguishedNameMatch does not follow the chapter 4.2.14 of RFC 4517, but is using a simple string comparizon, which obviously falis if some extra spaces are seen in one of the DN.

Comparizon of such attributes should be done by a comparizon of the number of RDN, the position of RDNs in the DN, and at the end, by comparing the values.

I will debug the server to figure out a fix for this issue, which is quite serious.

Emmanuel Lecharny added a comment - 14/Dec/06 10:52 AM
After a further investigation, here what I found :
- We are not checking the syntax of attributes. Here, uniqueMember attribute type is NameAndOptionalUid, which does not exist in ADS (we are currently adding them in 1.5)
- As we don't check those syntax, we don't know that they are DN and should be transformed with respect to DN representation (RFC 4514)
- thus, we compare them as string, not as DN
- and as a DN is composed of multiple attributes, whith each one having its own syntax, this lead us to have big problem finding entries with a uniqueMember not having the same value than the one which as created.

In one world : Damn !

Emmanuel Lecharny added a comment - 25/Jan/07 04:00 PM
Postponned to 1.5 : we need a strong schema checking system we don't have in 1.0 to solve it

Alex Karasulu added a comment - 23/Feb/07 08:21 PM
Emmanuel did'nt you add a matching rule for this? I thought you fixed this issue a while back with all those new normalizers, comparators, and syntaxCheckers. Let me know if not.

Emmanuel Lecharny added a comment - 20/Mar/07 10:06 PM
Postponed to 1.5.1


Emmanuel Lecharny added a comment - 15/Feb/09 01:36 PM
closed