[horde] LDAP configuration and hooks
David Wells
dwells at alfavinil.com
Thu Nov 28 21:12:41 UTC 2019
Hi!
I have configured the LDAP settings in horde as follow
> $conf['ldap']['hostspec'] = array('dc1.fliawells.com.ar');
> $conf['ldap']['port'] = 3268;
> $conf['ldap']['tls'] = true;
> $conf['ldap']['timeout'] = 5;
> $conf['ldap']['version'] = 3;
> $conf['ldap']['user']['basedn'] = 'DC=fliawells,DC=com,DC=ar';
> $conf['ldap']['user']['uid'] = 'userPrincipalName';
> $conf['ldap']['user']['objectclass'] = array('*');
> $conf['ldap']['user']['filter_type'] = 'objectclass';
> $conf['ldap']['bindas'] = 'user';
> $conf['ldap']['useldap'] = true;
When I modify the hooks.local.php file so that it reads
> <?php
> class Horde_Hooks
> {
> public function prefs_init($pref, $value, $username, $scope_ob)
> {
> switch ($pref) {
> case 'from_addr':
>
> if (is_null($username)) {
> return $value;
> }
>
> $ldap = $GLOBALS['injector']->getInstance('Horde_Ldap');
> try {
> $result = $ldap->search(
> $GLOBALS['conf']['ldap']['user']['basedn'],
> Horde_Ldap_Filter::create('userPrincipalName', 'equals', $username),
> array('attributes' => array('mail'))
> );
> if ($result->count()) {
> $entry = $result->shiftEntry();
> return $entry->getValue('mail', 'single');
> }
> } catch (Horde_Ldap_Exception $e) {
> }
>
> return $value;
>
>
> case 'fullname':
> if (is_null($username)) {
> return $value;
> }
>
> $ldap = $GLOBALS['injector']->getInstance('Horde_Ldap');
> try {
> $result = $ldap->search(
> $GLOBALS['conf']['ldap']['user']['basedn'],
> Horde_Ldap_Filter::create('userPrincipalName', 'equals', $username),
> array('attributes' => array('cn', 'cn;lang-es'))
> );
> if ($result->count()) {
> $entry = $result->shiftEntry();
> return $entry->getValue('cn;lang-es', 'single')
> ?: $entry->getValue('cn', 'single');
> }
> } catch (Horde_Ldap_Exception $e) {
> }
>
> return $username;
> }
> }
> }
and enable these hooks by modifying the prefs.local.php file so that it
reads
> <?php
> $_prefs['from_addr']['hook'] = true;
> $_prefs['fullname']['hook'] = true;
I get an error that says
>
> Could not connect to localhost:389
>
When I comment the prefs.local.php file and access horde I run the
following piece of code in the PHP Shell (under the horde context
> |$ldap| |= ||$GLOBALS||[||'injector'||]->getInstance(||'Horde_Ldap'||);|
> |||try| |{|
> |||$result| |= ||$ldap||->search(|
> |||$GLOBALS||[||'conf'||][||'ldap'||][||'user'||][||'basedn'||],|
> |||Horde_Ldap_Filter::create(||'userPrincipalName'||, ||'equals'||,
> ||'dwells at fliawells.com.ar'||), ||array||(||'attributes'| |=>
> ||array||(||'mail'||)));|
> |||if| |(||$result||->||count||()) {|
> |||$entry| |= ||$result||->shiftEntry();|
> |||return| |$entry||->getValue(||'mail'||, ||'single'||);|
> |||}|
> |||} ||catch| |(Horde_Ldap_Exception ||$e||) {|
> |||}|
> |||return| |$value||;|
I get the following result
> exception 'Horde_Ldap_Exception' with message 'Could not connect to localhost:389' in /usr/lib64/php/Horde/Ldap.php:321
> Stack trace:
> #0 /usr/lib64/php/Horde/Ldap.php(225): Horde_Ldap->_connect()
> #1 /usr/lib64/php/Horde/Ldap.php(137): Horde_Ldap->bind()
> #2 [internal function]: Horde_Ldap->__construct(Array)
> #3 /usr/lib64/php/Horde/Injector/Binder/Implementation.php(88): ReflectionClass->newInstanceArgs(Array)
> #4 /usr/lib64/php/Horde/Injector/Binder/Implementation.php(70): Horde_Injector_Binder_Implementation->_getInstance(Object(Horde_Injector), Object(ReflectionClass))
> #5 /usr/lib64/php/Horde/Injector/Binder/AnnotatedSetters.php(78): Horde_Injector_Binder_Implementation->create(Object(Horde_Injector))
> #6 /usr/lib64/php/Horde/Injector.php(238): Horde_Injector_Binder_AnnotatedSetters->create(Object(Horde_Injector))
> #7 /usr/lib64/php/Horde/Injector.php(272): Horde_Injector->createInstance('Horde_Ldap')
> #8 /var/www/horde/admin/phpshell.php(66) : eval()'d code(1): Horde_Injector->getInstance('Horde_Ldap')
> #9 /var/www/horde/admin/phpshell.php(66): eval()
> #10 {main}
From what I can tell the library is trying to connect lo localhost:389
even though the settings state that it should be connecting to
dc1.fliawells.com.ar:3268. What could I be missing here?
Thank you very much in advance!
Best regards,
David Wells.
More information about the horde
mailing list