changeset ef94072def34 in modules/ldap_authentication:6.0
details:
https://hg.tryton.org/modules/ldap_authentication?cmd=changeset&node=ef94072def34
description:
Enforce certificate validation for LDAP connection
issue11564
review417381003
(grafted from 366cca2d391e3fda2e038b34a032f4acf0efdce5)
diffstat:
CHANGELOG | 2 ++
res.py | 5 ++++-
2 files changed, 6 insertions(+), 1 deletions(-)
diffs (34 lines):
diff -r 5895439fca1c -r ef94072def34 CHANGELOG
--- a/CHANGELOG Mon May 03 15:37:53 2021 +0200
+++ b/CHANGELOG Tue Jun 21 10:17:02 2022 +0200
@@ -1,3 +1,5 @@
+* Enforce certificate validation for LDAP connection (issue11564)
+
Version 6.0.0 - 2021-05-03
* Bug fixes (see mercurial logs for details)
diff -r 5895439fca1c -r ef94072def34 res.py
--- a/res.py Mon May 03 15:37:53 2021 +0200
+++ b/res.py Tue Jun 21 10:17:02 2022 +0200
@@ -1,6 +1,7 @@
# This file is part of Tryton. The COPYRIGHT file at the top level of
# this repository contains the full copyright notices and license terms.
import logging
+import ssl
import urllib.parse
import ldap3
@@ -42,10 +43,12 @@
uri, _, _, _, _, extensions = parse_ldap_url(uri)
if uri.scheme.startswith('ldaps'):
scheme, port = 'ldaps', 636
+ tls = ldap3.Tls(validate=ssl.CERT_REQUIRED)
else:
scheme, port = 'ldap', 389
+ tls = None
return ldap3.Server('%s://%s:%s' % (
- scheme, uri.hostname, uri.port or port))
+ scheme, uri.hostname, uri.port or port), tls=tls)
class User(metaclass=PoolMeta):