!!! Syntax and [LDAP Filter Choices]
Are [boolean] expressions that are used within [LDAP SearchFilters] and demonstrate how they can be used for [LDAP Query Examples] that can be used to find specific information using [LDAP].
An [LDAP SearchFilters] consists of one or more [boolean] expressions, with logical [LDAP Filter Choices] prefixed to the expression list.
The [boolean] expressions use the following format:
{{{
Attribute Operator Value
}}}
where Attribute is a valid LDAP attribute name and Value is the the field value.
The filter syntax supports the =, ~=, <, <=, >, >= and ! operators, and provides limited substring matching using the * operator.
In addition, the syntax also supports calls to [matchingRules] defined in the LDAP data source.
White space is __NOT__ used as a separator between attribute, [LDAP Filter Choices] and value, and that string values are __NOT__ specified using quotation marks.
!! Nested Filters
LDAP filters consist of one or more boolean expression(s) which can be linked together by using [LDAP Filter Choices]. The [LDAP Filter Choices] are always placed in front of the operands. This is the so-called 'Polish Notation'. The search criteria have to be put in parentheses and then the whole term has to be bracketed one more time.
!AND Operation:
{{{
& (...K1...) (...K2...)
}}}
or with more than two criteria:
{{{
(& (...K1...) (...K2...) (...K3...) (...K4...))
}}}
!OR Operation:
{{{
(| (...K1...) (...K2...))
}}}
or with more than two criteria:
{{{
(| (...K1...) (...K2...) (...K3...) (...K4...))
}}}
! Nested Operators
Every AND/OR operation can also be understood as a single criterion:
{{{
(|(& (...K1...) (...K2...))(& (...K3...) (...K4...)))
}}}
means:
{{{
(K1 AND K2) OR (K3 AND K4)
}}}
!! [LDAP Filter Choices]
[LDAP Filter Choices] operate on individual operands for an LDAP attribute, e.g. (givenName=Sandra).
The [LDAP Filter Choices] specifies the conditions that must be met for a record to be included in the recordset (or collection) that results from a query. An LDAP filter has one or more clauses, each enclosed in parentheses. Each clause evaluates to either True or False.
!! Upper/lower case
Most other string attributes are [case-insensitive] and a hit will be found even if the upper and lower case differs from your search filter.
There are various [MatchingRules] which may be [case-sensitive].
! [Boolean Match]
[Boolean] attributes are in general [case-sensitive]. The use of uppercase, TRUE or FALSE, is usually necessary for filtering [boolean] syntax attributes. Some [LDAP Server Implementations] are __NOT__ [case-sensitive] for booleans, [eDirectory] as an example.
!! More Information
There might be more information for this subject on one of the following:
[{ReferringPagesPlugin before='*' after='\n' }]