I also face this problem with a super-user bound OpenLDAP. I worked around it by:
diff --git a/inc/auth/ldap.class.php b/inc/auth/ldap.class.php
index 23c2c28..9eea92a 100644
--- a/inc/auth/ldap.class.php
+++ b/inc/auth/ldap.class.php
@@ -444,7 +444,9 @@ class auth_ldap extends auth_basic {
if (defined('LDAP_OPT_NETWORK_TIMEOUT')) {
ldap_set_option($this->con, LDAP_OPT_NETWORK_TIMEOUT, 1);
}
- $bound = @ldap_bind($this->con);
+ //$bound = @ldap_bind($this->con);
+ // Workaround for bug
https://bugs.dokuwiki.org/index.php?do=details&task_id=2607 with super-user bind
+ $bound = @ldap_bind($this->con,$this->cnf['binddn'],$this->cnf['bindpw']);
if ($bound) {
break;
}
Probably, parts of checkPass (which relies on this->_openLDAP anyway) should be done here.