dissect.util.ldap

Module Contents

Classes

LogicalOperator

Generic enumeration.

ComparisonOperator

Generic enumeration.

SearchFilter

Represents an LDAP search filter (simple or nested).

Functions

optimize_ldap_query

Optimize an LDAP query in-place.

exception dissect.util.ldap.InvalidQueryError

Bases: dissect.util.exceptions.Error

Common base class for all non-exit exceptions.

class dissect.util.ldap.LogicalOperator

Bases: enum.Enum

Generic enumeration.

Derive from this class to define new enumerations.

AND = '&'
OR = '|'
NOT = '!'
class dissect.util.ldap.ComparisonOperator

Bases: enum.Enum

Generic enumeration.

Derive from this class to define new enumerations.

GE = '>='
LE = '<='
GT = '>'
LT = '<'
EQ = '='
APPROX = '~='
BIT = ':='
EXTENDED = ':'
class dissect.util.ldap.SearchFilter(query: str)

Represents an LDAP search filter (simple or nested).

Parameters:

query – The LDAP search filter string.

query: str
children: list[SearchFilter] = []
operator: LogicalOperator | ComparisonOperator | None = None
attribute: str | None = None
value: str | None = None
__repr__() str
classmethod parse(query: str, optimize: bool = True) SearchFilter

Parse an LDAP query into a filter object, with optional optimization.

is_nested() bool

Return whether the filter is nested (i.e., contains logical operators and child filters).

format() str

Format the search filter back into an LDAP query string.

dissect.util.ldap.optimize_ldap_query(query: SearchFilter) tuple[SearchFilter, int]

Optimize an LDAP query in-place.

Removes redundant conditions and sorts filters and conditions based on how specific they are.

Parameters:

query – The LDAP query to optimize.

Returns:

A tuple containing the optimized LDAP query and its weight.