Bon j'ai trouvé pourquoi ma classe n'était pas chargé (je suis tombé dessus par hasard) je suis sous un environnement windows, j'utilise notepad++ comme éditeur. en éditant le fichier "myLDAP.class.php" j'ai remarqué en bas à droite de notepad++ à gauche du format ansi pour ce fichier il y avait marqué Macintosh alors que tous les autres fichiers (le peux que j'ai ouvert) sont marqués Dos\Windows ! J'ai créé un nouveau fichier avec le même nom en faisant du copier/ coller à présent il y a marqué Dos/Windows et sa fonctionne comme quoi ^^
Bon maintenant il me reste plus qu'a créer la fonction checkLDAPPassword que je ne manquerai pas de coller ici à moins que quelqu'un me devance. Pour info j'ai lu sur un forum qu'il faut aussi avoir les users dans la bdd mais la vérification du mot de passe est effectué sur l'annuaire ldap. On 29 déc, 11:22, eddie <[email protected]> wrote: > Après le test suivant : > > j'ai désactivé la sécurité sur le fichier "/main/config/ > security.yml" : > > default: > is_secure: false > > j'ai créé un module home chargé par défaut via le routing et dans > l'action j'ai le code suivant : > > class homeActions extends sfActions > { > public function executeIndex(sfWebRequest $request) > { > myLDAP::checkLDAPPassword('test', 'test'); > } > > } > > j'obtiens l'erreur suivante : > > Fatal error: Class 'myLDAP' not found in ..\monprojet\apps\main\modules > \home\actions\actions.class.php > > visiblement la classe myLDAP n'est pas chargé pourtant tout est nommé > correctement il me semble. > Les classes ne sont elles pas chargées automatiquement ? > > /monprojet/apps/main/lib/myLDAP.class.php (class myLDAP extends > sfGuardSecurityUser) > > ++ > > On 29 déc, 09:52, eddie <[email protected]> wrote: > > > Re, > > > Bon j'ai du neuf. Je viens de charger des fixtures pour le plugin > > sfguard et quand je me connecte avec un user qui existe dans la table > > sf_guard_user j'obtiens l'erreur suivante : > > > Warning: call_user_func_array() [function.call-user-func-array]: First > > argument is expected to be a valid callback, > > 'myLDAP::checkLDAPPassword' was given in ..\monprojet\plugins > > \sfDoctrineGuardPlugin\lib\model\doctrine\PluginsfGuardUser.class.php > > on line 79 > > > C'est quand même bizarre que l'utilisateur doit exister dans la base > > de données pour lancer la fonction checkLDAPPassword non ? > > > Par contre même avec la fonction suivante j'obtiens la même erreur : > > > public static function checkLDAPPassword($username, $password) > > { > > return true; > > } > > > ++ > > > On 28 déc, 16:07, eddie <[email protected]> wrote: > > > > Bonjour, > > > > Je suis en train de démarrer un projet avec symfony 1.4 j'ai installé > > > le plugin sfguard. > > > Le plugin sfguard est visiblement bien installé car les tables sont > > > générées dans la base de données et j'ai bien le formulaire de > > > connexion (je n'ai pas chargé les fixtures). > > > Maintenant je souhaite faire l'authentification via l'annuaire LDAP et > > > c'est là que je suis bloqué, je pense avoir fait le tour sur google à > > > ce sujet. > > > > J'ai suivi les instructions marquées sur la documentation du plugin > > > :http://www.symfony-project.org/plugins/sfDoctrineGuardPlugin > > > > dans "/apps/main/config/app.yml" j'ai le code suivant : > > > > all: > > > sf_guard_plugin: > > > check_password_callable: [myLDAP, checkLDAPPassword] > > > > dans "/apps/main/lib/myLDAP.class.php" : > > > > class myLDAP extends sfGuardSecurityUser > > > { > > > public static function checkLDAPPassword($username, $password) > > > { > > > $user = LDAP::getUser($username); > > > if ($user->checkPassword($password)) > > > { > > > return true; > > > } > > > else > > > { > > > return false; > > > } > > > return true; > > > } > > > > } > > > > Pour le moment la fonction checkLDAPPassword est celle proposé dans la > > > documentation de sfguard mais d'après ce que j'ai compris sur d'autre > > > site il faut utiliser une classe pour établir la liaison avec > > > l'annuaire. > > > J'ai repéré 2 classes "adLDAP" et "Zend_ldap", j'aurai une préférence > > > pour Zend_ldap car je pense que pour ce projet j'aurai besoin d'autres > > > librairies de Zend. > > > Donc je ne sais pas trop comment modifier ma fonction > > > checkLDAPPassword pour la faire fonctionner avec Zend_ldap. > > > > J'ai ajouté l'ensemble des librairies de Zend dans "/lib/vendor/Zend/" > > > puis j'ai modifié le fichier "/config/ProjectConfiguration.class.php" > > > pour activer Zend (code récupéré dans un pdf) : > > > > class ProjectConfiguration extends sfProjectConfiguration > > > { > > > public function setup() > > > { > > > $this->enablePlugins(array( > > > 'sfDoctrinePlugin', > > > 'sfDoctrineGuardPlugin', > > > )); > > > > // Chargement des librairies Zend > > > set_include_path(sfConfig::get('sf_lib_dir').'/ > > > vendor'.PATH_SEPARATOR.get_include_path()); > > > require_once sfConfig::get('sf_lib_dir').'/vendor/Zend/Loader/ > > > Autoloader.php'; > > > Zend_Loader_Autoloader::getInstance(); > > > } > > > > } > > > > D'après quelques tests j'ai l'impression que la fonction > > > checkLDAPPassword n'est pas utilisé car avec le code suivant je ne > > > suis pas connecté : > > > > public static function checkLDAPPassword($username, $password) > > > { > > > return true; > > > } > > > > Merci d'avance de partager votre expérience sur le sujet ! > > > ++ -- Vous recevez ce message, car vous êtes abonné au groupe Google Groupes Symfony-fr. Pour envoyer un message à ce groupe, adressez un e-mail à [email protected]. Pour vous désabonner de ce groupe, envoyez un e-mail à l'adresse [email protected]. Pour plus d'options, consultez la page de ce groupe : http://groups.google.com/group/symfony-fr?hl=fr
