[Symfony] LDAP et sfGuardPlugin

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : [Symfony] LDAP et sfGuardPlugin

par Le_Pat » 25 juin 2009, 10:03

Je déterre ce vieux post. La solution donnée par Julien33 m'a bien rendu service, mais ne me satisfait pas.
Y a t il un moyen de réaliser l'authentification sans interroger la table sf_guard_user ?
Merci.

par Julien33 » 08 juil. 2008, 14:55

J'ai trouvé.
Je donne la solution si d'autres cherchent et tombent dessus...
Il faut donc créer dans la bd (table user créée automatiquement par sfGuard) des utilisateurs avec un username égal au uid du ldap, meme si ensuite le mot de passe sera vérifié dans le LDAP.

par Julien33 » 07 juil. 2008, 16:02

Je reviens poster car je me suis un peu emballé tout à l'heure en indiquant résolu.
En effet si le premier probleme évoqué (myLDAP.class.php) est bien résolu, le fait que si je n'entre pas admin en tant qu'uid, il ne va pas dans ma classe est toujours d'actualité.
Auriez vous une solution ? Pardon de refermer, puis réouvrir...

par Julien33 » 07 juil. 2008, 09:48

Merci de la réponse.
Concernant la casse, tu peux voir le code, c'est comme ça que j'ai fait. :wink:

[Note : ce message a été posté de manière anonyme avant d'être réattribué à son auteur]
edit : oups, erreur de session, c'est bien moi qui ait posté
:D

EDIT 2 : En effet, c'était ça en fait. MyLDAP vs myLDAP... bien joué, vendredi soir j'avais pas été capable de comprendre ce que zeus m'avait proposé... :?

par pascaltje » 04 juil. 2008, 18:57

ça serait pas un pb de casse ?

j'ai déjà eu un truc dans le genre, avec un nom de classe comportant des majuscules - ou pas.

je ferais un truc, genre :
_ dans la définition de la classe : class myLDAP
_ nom de fichier : myLDAP.class.php
_ dans app.yml : check_password_callable: [myLDAP, checkLDAPPassword]

hope this helps

A+

Pascal

par Julien33 » 04 juil. 2008, 17:22

Oui pardon, ma classe s'apelle bien MyLDAP.class.php
C'est un casse tete, je ne comprends pas non plus ce qui fait que ça ne marche pas...

EDIT :
J'ai mis mon projet sur megaupload; si quelqu'un veut y jetter un oeil.

D'avance merci. : :wink:

par zeus » 04 juil. 2008, 17:19

alors là ... je ne sais franchement pas ce qui peut se passer :shock:

La dernière piste qui me viens en tête, c'est de faire en sorte que le nom de ton fichier "colle" bien au nom de ta classe :?
class MyLDAP => myLDAP.class.php

par Julien33 » 04 juil. 2008, 17:06

ma classe monLDAP.class.php est dans /racineduprojet/apps/frontend/lib, a coté de myUser.class.php.

Encore une fois merci de prendre ton temps à me répondre.

par zeus » 04 juil. 2008, 17:02

Pour le 1er point, est-ce que tu peux nous dire où se trouve exactement ta classe ?

Pour le second point, j'avoue que je ne sais pas quoi te répondre, ne connaissant pas très bien sfGuardPlugin et voyant ton code. :?

par Julien33 » 04 juil. 2008, 16:53

Je pense que tu as raison, j'ai désactivé la sécurité de l'appli frontend, et mis le code que tu m'as donné dans l'action du module main et en allant sur http://monappli/frontend_dev.php/main j'obtient :

Fatal error: Class 'MyLDAP' not found in /home/monprojetsymfony/apps/frontend/modules/main/actions/actions.class.php on line 19

Comment résoudre alors du coup ?

Edit, en allant sur http://monappli/frontend_dev.php j'obtient toujours l'erreur du callback.
De plus celle ci est toujours uniquement valable pour le usename admin. cela aurait il un lien avec le fichier contenu dans data/fixtures ensuite chargé ?

par zeus » 04 juil. 2008, 16:47

En fait, je me demande si ta classe est correctement chargée par l'autoload :-k

du coup, si tu pouvais désactiver la sécurité sur une action et mettre le code que je t'ai donné, ça permettrais de vérifier mon intuition ;)

par Julien33 » 04 juil. 2008, 16:36

Je mettrais ça ou en somme ? dans l'action correspondant à sfGuard ?
En fait je ne peux pas me logger, donc je ne peux pas acceder aux modules, à part default.
Non ?
De plus je viens de noter que ce que j'obtiens, présenté au dessus n'est valable que lorsque le username est admin. sans quoi j'ai juste marqué "The username and/or password is invalid." et sans passer par ma classe et fonction, j'ai vérifié avec un echo dans la fonction.

Merci beaucoup pour les réponses.

par zeus » 04 juil. 2008, 16:28

Est-ce que tu as essayé un simple
MyLDAP::checkLDAPPassword('truc', 'muche');
Dans une action ?

par Julien33 » 04 juil. 2008, 16:12

Oui :cry:

par zeus » 04 juil. 2008, 16:10

Est-ce que tu as fait un clear-cache depuis que tu as ajouté ta nouvelle classe, de manière à ce que l'autoload soit rafraichi ?