You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@directory.apache.org by "Endi S. Dewata" <en...@safehaus.org> on 2007/01/09 02:14:01 UTC

Filter parsing problem

Hi,

Someone reported a problem with the filter parsing:

http://groups-beta.google.com/group/safehaus/browse_thread/thread/5100becc93
2fad8c

I was able to reproduce the problem on ApacheDS 1.0.0:

    ldapsearch -h localhost -p 10389 -D uid=admin,ou=system -w secret -x
    -b "dc=Example,dc=com" "(|(cn=a)(&(sn=b)(sn=c*)(sn=d)))"

Here's the debug output:

(org.apache.directory.server.ldap.support.SearchHandler.java:150)

Message received :     SearchRequest
        baseDn : 'dc=Example,dc=com'
        filter : '(| (cn=a) (& (sn=b) (sn=c*) ) (sn=d) ) '
        scope : whole subtree
        typesOnly : false
no limit
        Time Limit : no limit
        Deref Aliases : never Deref Aliases
        attributes :

Notice that the position of the parenthesises has changed.

Original filter: (|(cn=a)(&(sn=b)(sn=c*)(sn=d)))
Parsed filter  : (|(cn=a)(&(sn=b)(sn=c*))(sn=d))

If the '*' is removed, it will work just fine. Similar problem happens if
the operators are switched:

Original filter: (&(cn=a)(|(sn=b)(sn=c*)(sn=d)))
Parsed filter  : (&(cn=a)(|(sn=b)(sn=c*))(sn=d))

I'm having problems building ApacheDS from the source code, so I can't check
whether this problem still exists in the latest code. Could someone verify
this? Has this problem been reported in JIRA? Thanks a lot.

--
Endi S. Dewata



Re: Filter parsing problem

Posted by Alex Karasulu <ak...@apache.org>.
Thanks Endi for catching and reporting this.  Can you file a JIRA issue 
and provide a test case that catches this failure?

We have been working on 1.0.x bug fixes and perhaps we can fix this soon 
for a 1.0.1 release at the end of this month.

Thanks,
Alex


Endi S. Dewata wrote:
> Hi,
> 
> Someone reported a problem with the filter parsing:
> 
> http://groups-beta.google.com/group/safehaus/browse_thread/thread/5100becc93
> 2fad8c
> 
> I was able to reproduce the problem on ApacheDS 1.0.0:
> 
>     ldapsearch -h localhost -p 10389 -D uid=admin,ou=system -w secret -x
>     -b "dc=Example,dc=com" "(|(cn=a)(&(sn=b)(sn=c*)(sn=d)))"
> 
> Here's the debug output:
> 
> (org.apache.directory.server.ldap.support.SearchHandler.java:150)
> 
> Message received :     SearchRequest
>         baseDn : 'dc=Example,dc=com'
>         filter : '(| (cn=a) (& (sn=b) (sn=c*) ) (sn=d) ) '
>         scope : whole subtree
>         typesOnly : false
> no limit
>         Time Limit : no limit
>         Deref Aliases : never Deref Aliases
>         attributes :
> 
> Notice that the position of the parenthesises has changed.
> 
> Original filter: (|(cn=a)(&(sn=b)(sn=c*)(sn=d)))
> Parsed filter  : (|(cn=a)(&(sn=b)(sn=c*))(sn=d))
> 
> If the '*' is removed, it will work just fine. Similar problem happens if
> the operators are switched:
> 
> Original filter: (&(cn=a)(|(sn=b)(sn=c*)(sn=d)))
> Parsed filter  : (&(cn=a)(|(sn=b)(sn=c*))(sn=d))
> 
> I'm having problems building ApacheDS from the source code, so I can't check
> whether this problem still exists in the latest code. Could someone verify
> this? Has this problem been reported in JIRA? Thanks a lot.
> 
> --
> Endi S. Dewata
> 
> 
>