[Date Prev][Date Next] [Chronological] [Thread] [Top]

Re: LDAPprep: mapping of " " values



At 06:30 AM 11/19/2004, John McMeeking wrote:
>"Kurt D. Zeilenga" <Kurt@OpenLDAP.org> wrote on 11/18/2004 09:15:52 AM:
>> At 10:44 PM 11/17/2004, Hallvard B Furuseth wrote:
>> >I need to read up on X.520, but:  The behaviour which seems most
>> >consistent with the current ldapbis documents seems to me to be:
>> >
>> >- "foo * bar" does not match "foo bar" - the two spaces in the
>> >  substrings do not match _disjoint_ portions of "foo bar".
>> >  Nor does it match "foo  bar", which is equivalent to "foo bar".
>>
>> My view is that (l=foo * bar) since "foo X bar" without
>> consuming any portion of X, it should match "foo  bar"
>> (which passes your disjoint concern), and since "foo bar"
>> is equivalent, that too.
>
>I don't see how (l=foo * bar) can match "foo bar" (single space).  Doesn't
>that require that the trailing and leading spaces in the filter substring
>match the same character?  The * is supposed to match zero or more
>characters between two substrings, not allow the substrings to overlap.

It's matching the same trailing/space space in the same sense
that (l= * ) matches " ".

>I'd also argue that (l=foo * bar) does NOT match "foo  bar" because "foo
>bar" is equivalent to "foo bar".  I know it seems like it ought to match,
>and I wouldn't complain if it did match, but I think it is reasonable to
>say that for matching purposes, the server compares filter substrings to
>the equivalent prepared string (according to the matching rule) "foo bar",
>which (l=foo * bar) does not match (or so I believe).  I think that would
>be far easier to describe than, and has a consistency that I find lacking
>in, these examples where sometimes a given space is insignificant, and
>sometimes the same space in the same string (entry value or filter
>substring) is significant.

Here's the question, can spaces in the asserted value match
insignificant spaces in the attribute value?  If we say no,
then (l= * ) must not match any string.  If we say yes,
then (l= * ) matches every string.  And, as I've shown above,
the choice impacts other matching behavior.

Kurt