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 à