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):

Reply via email to