Projets Campagnes de tests Yacs Lasares RC3

Bonjour, J'essaye d'utiliser l'autentification par ldap mais cela ne ne ... [Intégré]

Avancement100%
WorkflowBesoin d'aide
StatutLa solution a été intégrée

Bonjour,

J'essaye d'utiliser l'autentification par ldap mais cela ne ne fonctionne pas.  J'ai une erreur unknow authentication ldap...

J'utilise centos 6.3 default install (httpd 2.2.15, php 5.3.3, mysql 5.1.66).  C'est une nouvelle installation et mon setup pour ldap est:  $context['users_authenticator']='ldap 192.168.1.1 %u %p';

En trifouillant, il me dit qu'il ne connais pas la class ldap:

Strict Standards: Non-static method Authenticator::bind() should not be called statically in /var/www/yacs/users/users.php on line 1288 Fatal error: Class 'ldap' not found in /var/www/yacs/users/authenticator.php on line 84

Merci,

Eric.

Alexis Raimbault
le 2 jan. 2013 à 10:46 GMT
La solution a été intégrée

Alexis Raimbault
le 1er jan. 2013 à 10:54 GMT

Merci, Bonne année également !

Bonne idée de conditionner l'affichage d'un retour d'erreur de connexion sur le mode développement du serveur.

Une correction de ces erreurs sera intégrée rapidement, et ce fera avec la chaine '_authenticator' car les autres classes correspondant aux autres moyens d'authentification externalisée sont construites ainsi (et donc en erreur avec le codage actuel)



----- Alexis Raimbault webmaster free-lance
Eric Laurent
le 1er jan. 2013 à 01:03 GMT
Merci Alexis.




J'ai fait la modif 'public static' dans user/authenticator.php. J'ai aussi copié authenticators/ldap.php pour en faire un nouveau fichier et une nouvelle classe 'ldape' et c'est ok! Pour info, j'utilise 389-DS.




Par contre, j'ai modifié le résultat en cas d'erreur car en mode production je ne veux pas donner d'information sur les raisons de l'échec de l'authentification.




Bonne Année !


Eric.

Alexis Raimbault
le 31 déc. 2012 à 13:16 GMT
Bonjour Eric, merci pour ce retour.




pour le warning il faudra ajouter 'public static' devant la déclaration de la fonction bind dans users/authenticator.php




Pour l'erreur fatale, elle s'explique : bind recherche une classe ldap (selon le paramètre fourni par $context) dans un fichier /users/authenticators/ldap.php


le fichier existe bien, mais le nom de classe est Ldap_Authenticator




Il faudra donc modifier le code de authenticator::bind pour ajouter '_Authenticator' au nom de classe recherché. Le plus propre serait d'avoir une constante en tête de fichier.




Voilà pour ma part je n'ai pas eu l'occasion d'utiliser cette fonction, Bernard nous en dira plus.




Je pourrais fournir un patch à partir du 2 janv.

----- Alexis Raimbault webmaster free-lance
Alexis Raimbault
le 31 déc. 2012 à 09:23 GMT
La situation est sous contrôle