From 7845ba5a9c51ad374350bd1df5f6e84c0ba3a124 Mon Sep 17 00:00:00 2001 From: Benjamin Renard Date: Mon, 1 Jul 2019 18:40:53 +0200 Subject: [PATCH] LSattr_ldap_password : Fix parameters pass to verify_function and add doc about it --- .../LSattr_ldap/LSattr_ldap_password.docbook | 15 +++++++++++++++ .../includes/class/class.LSattr_ldap_password.php | 2 +- 2 files changed, 16 insertions(+), 1 deletion(-) diff --git a/doc/conf/LSattribute/LSattr_ldap/LSattr_ldap_password.docbook b/doc/conf/LSattribute/LSattr_ldap/LSattr_ldap_password.docbook index 93244ab4..56f73889 100644 --- a/doc/conf/LSattribute/LSattr_ldap/LSattr_ldap_password.docbook +++ b/doc/conf/LSattribute/LSattr_ldap/LSattr_ldap_password.docbook @@ -8,6 +8,7 @@ array ( 'encode' => '[Type d'encodage du mot de passe]', 'encode_function' => '[Nom de la fonction d'encodage]', + 'verify_function' => '[Nom de la fonction de vérification]', 'no_random_crypt_salt' => '[Booléen]', // Désactivation de l'utilisation d'une salt aléatoire 'wildcardPassword' => '[mot de passe(s) en clair]', 'encodedWildcardPassword' => '[mot de passe(s) encodé(s)]' @@ -55,6 +56,20 @@ + + verify_function + + Nom d'une function qui sera utilisée afin de valider un mot de passe + soumis par l'utilisateur par rapport à celui stocké dans l'annuaire. Cette + fonction recevra trois paramètres : le LSldapObject,le + mot de passe en clair et le mot de passe hashé. Si ce paramètre est omis + et que le paramètre encode_function est défini, le mot + de passe à tester sera encodé à nouveau à l'aide de la fonction + encode_function et le résultat sera comparé avec le mot + de passe stocké dans l'annuaire. + + + no_random_crypt_salt diff --git a/public_html/includes/class/class.LSattr_ldap_password.php b/public_html/includes/class/class.LSattr_ldap_password.php index 66bc52b7..d719d8f7 100644 --- a/public_html/includes/class/class.LSattr_ldap_password.php +++ b/public_html/includes/class/class.LSattr_ldap_password.php @@ -261,7 +261,7 @@ class LSattr_ldap_password extends LSattr_ldap { // Custom verify function configured ? If yes, use it $verifyFunction = $this -> getConfig('ldap_options.verify_function', null); if (!is_null($verifyFunction) && is_callable($verifyFunction)) - return call_user_func($verifyFunction, $clearPassword, $hashedPassword); + return call_user_func_array($verifyFunction, array(&$this -> attribute -> ldapObject, $clearPassword, $hashedPassword)); // Custom encode function configured ? If yes, use it $encodeFunction = $this -> getConfig('ldap_options.encode_function', null);