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


Répondre à