3.4.0
This release requires Python 3.6 or above,
and is tested with Python 3.6 to 3.10.
Python 2 is no longer supported.
New code in the python-ldap project is available under the MIT licence
(available in LICENCE.MIT
in the source). Several contributors have agreed
to apply this licence their previous contributions as well.
See the README
for details.
The following undocumented functions are deprecated and scheduled for removal:
ldap.cidict.strlist_intersection
ldap.cidict.strlist_minus
ldap.cidict.strlist_union
Security fixes:
- Fix inefficient regular expression which allows denial-of-service attacks
when parsing specially-crafted LDAP schema.
(GHSL-2021-117)
Changes:
- On MacOS, remove option to make LDAP connections from a file descriptor
when built with the system libldap (which lacks the underlying function,
ldap_init_fd
) - Attribute values of the post read control are now
bytes
instead of ISO8859-1 decodedstr
LDAPUrl
now treats urlscheme as case-insensitive- Several OpenLDAP options are now supported:
OPT_X_TLS_REQUIRE_SAN
OPT_X_SASL_SSF_EXTERNAL
OPT_X_TLS_PEERCERT
Fixes:
- The
copy()
method ofcidict
was added back. It was unintentionally
removed in 3.3.0 - Fixed getting/setting
SASL
options on big endian platforms - Unknown LDAP result code are now converted to
LDAPexception
,
rather than raising aSystemError
.
slapdtest:
- Show stderr of slapd -Ttest
SlapdObject
uses directory-based configuration ofslapd
SlapdObject
startup is now faster
Infrastructure:
- CI now runs on GitHub Actions rather than Travis CI.