1 ? $ldapServer[1] : 389); if ($ldapConnection === false) { throw new LdapException('Cannot connect to ldap server, Initial connection failed'); } // Options ldap_set_option($ldapConnection, LDAP_OPT_PROTOCOL_VERSION, 3); // TODO - make configurable $ldapDn = config('services.ldap.dn'); $ldapPass = config('services.ldap.pass'); $isAnonymous = ($ldapDn === false || $ldapPass === false); if ($isAnonymous) { $ldapBind = ldap_bind($ldapConnection); } else { $ldapBind = ldap_bind($ldapConnection, $ldapDn, $ldapPass); } if (!$ldapBind) throw new LdapException('LDAP access failed using ' . $isAnonymous ? ' anonymous bind.' : ' given dn & pass details'); // Find user $userFilter = $this->buildFilter(config('services.ldap.user_filter'), ['user' => $userName]); //dd($userFilter); $baseDn = config('services.ldap.base_dn'); $ldapSearch = ldap_search($ldapConnection, $baseDn, $userFilter); $users = ldap_get_entries($ldapConnection, $ldapSearch); dd($users); } private function buildFilter($filterString, $attrs) { $newAttrs = []; foreach ($attrs as $key => $attrText) { $newKey = '${'.$key.'}'; $newAttrs[$newKey] = $attrText; } return strtr($filterString, $newAttrs); } }