Skip to content

Filters with AND operator not working properly #394

@pjmartorell

Description

@pjmartorell

Hi, I'm trying to translate the following filter in Net::LDAP but it seems is not working as expected:
(&(objectClass=user)(memberof:1.2.840.113556.1.4.1941:=CN=2nd Level,CN=Users,DC=example,DC=dev))

If I pass the filter as string it works and it does return a result:

filter = "(&(objectClass=user)(memberof:1.2.840.113556.1.4.1941:=CN=2nd Level,CN=Users,DC=example,DC=dev))"`

But if I build the filters as the following, it does not return any result even the filter is equivalent:

object_class_filter = Net::LDAP::Filter.eq('objectClass', 'user')
member_of_filter = Net::LDAP::Filter.eq('memberof:1.2.840.113556.1.4.1941:', 'CN=2nd Level,CN=Users,DC=example,DC=dev')
filter = object_class_filter & member_of_filter
filter.to_s => # "(&(objectClass=user)(memberof:1.2.840.113556.1.4.1941:=CN=2nd Level,CN=Users,DC=example,DC=dev))"

Any idea of what is happening? I confirmed it's not related with escaping the spaces of 2nd Level

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions