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