Hi,
On Tuesday, 14. August 2007 11:01, Howard Chu wrote:
Zhang Weiwu wrote:
Hello.
I deployed an LDAP system and a set of applications around it that is highly sensitive to the order of values, e.g first telephoneNumber must be the main contact method, first value of companyRepresentative must be the DN of the main contact person.
That is a complete misuse of LDAP. Attributes are *SETS* of values. "Sets" are inherently unordered. The LDAP and X.500 specs and plenty of other docs tell you not to rely on the order in which values are returned.
What's the best way to solve this problem? I can only think of 1) try to modify source code of slapo-refint to make it maintain order (big problem, never worked on C source code before,
Obviously not the way to go.
or 2) try to use several
attributes like "FirstCompanyRepresentative", "SecondCompanyRepresentative", "ThirdCompanyRepresentative"
Clumsy, and only feasible if you have a fixed limit on the number of values you want to manage.
You might consider something like http://www.highlandsun.com/hyc/drafts/draft-chu-ldap-xordered-xx.html which is only slightly less clumsy, and that spec needs to be revised anyway. Whatever solution you choose is going to require your clients to be modified to adapt to the solution.
Maybe as another alternative attribute options might work (with some help from clients): telephoneNumber;x-sort-1: .... telephoneNumber;x-sort-2: ....
Then the client needs to sort the values according to the value after "x-sort-".
I have always wondered why this approach was not considered for the OpenLDAP configuration.
Regards Peter