IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Symfony PHP Discussion :

probleme d'authentification avec wsse


Sujet :

Symfony PHP

  1. #1
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2011
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2011
    Messages : 17
    Points : 20
    Points
    20
    Par défaut probleme d'authentification avec wsse
    Bonjour,

    Souhaitant faire une api, j'ai suivi ce tuto sur la mise en place d'une api par obtao puis le tuto sur wsse du cookbook symfony. Si le firewall wsse n'est pas activé et que je get une adresse de l'api j'obtiens bien les infos que je veux en json, donc on va considérer que cette partie fonctionne. quand j'active le wsse, la console rest de chrome ne me renvoie rien, même pas le message d'erreur! donc avec quelques echo je me suis aperçu que dans le WsseListener au niveau du bloc try on passe dans le catch.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    try {
         $authToken = $this->authenticationManager->authenticate($token);
         $this->securityContext->setToken($authToken);
    }
    catch (AuthenticationException $failed) {
         $response = new Response();
         $response->setStatusCode(403);
         $event->setResponse($response);
    }
    $authToken est vide.

    Dans le WsseProvider dans la fonction authenticate() ici présente :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
     
    public function authenticate(TokenInterface $token){
     
        $user = $this->userProvider->loadUserByUsername($token->getUsername());
     
        if(!$user){
              throw new AuthenticationException("Bad credentials... Did you forgot your username ?");
        }
     
        if ($user && $this->validateDigest($token->digest, $token->nonce, $token->created, $user->getPassword())) {
               $authenticatedToken = new WsseUserToken($user->getRoles());
               $authenticatedToken->setUser($user);
     
               return $authenticatedToken;
         }
     
         throw new AuthenticationException('The WSSE authentication failed.');
    }
    $user est vide. ce qui explique que $authToken le soit.

    Alors étant débutant avec symfony je ne comprends pas très bien ce que je dois faire pour que l'authentification fonctionne.
    Je précise que dans $token il y a bien les informations envoyés dans le header via la rest console de chrome donc il y a bien mon username dans $token->getUsername(). et j'utilise FOSUserBundle pour le user.

    Si vous avez une idée sur ce que j'ai pu mal faire ou sur la manière dont je dois m'y prendre pour l'authentification, je vous en remercie par avance.

    Et imaginons que plus tard je souhaite faire une authentification mais pas par user mais avec une autre table, par exemple un site web veux accéder a l'api il aura un nom et une clé, ce qui ressemble assez à username pwd mais j'aimerais pouvoir dissocier l'idée d'utilisateur en tant que personne de celle d'utilisateur en tant que site web, savez vous s'il est possible d'avoir accès à mes services ou mes repositories dans cette classe ?

  2. #2
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2011
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2011
    Messages : 17
    Points : 20
    Points
    20
    Par défaut
    Bon je vais déjà répondre à ma 2eme interrogation. Donc oui ca a l'air possible en injectant @service_container dans le service wsse provider on a accès aux services, du coup j'arrive à affecter à $user le bon user en passant par mon repository, cependant je ne comprends toujours pas pourquoi cette ligne ne fonctionne pas :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $user = $this->userProvider->loadUserByUsername($token->getUsername());

Discussions similaires

  1. Authentification avec laravel4
    Par hedibox dans le forum Laravel
    Réponses: 21
    Dernier message: 02/10/2013, 08h07
  2. probleme mod_proxy (reverse) avec authentification
    Par bertrand.gressier dans le forum Apache
    Réponses: 1
    Dernier message: 16/10/2008, 16h06
  3. Réponses: 9
    Dernier message: 25/06/2008, 13h40
  4. probleme authentification avec cvs
    Par decksroy dans le forum Eclipse Java
    Réponses: 5
    Dernier message: 13/09/2006, 14h52
  5. Probleme d'impression avec la méthode TForm->Print()
    Par Kid Icarus dans le forum C++Builder
    Réponses: 13
    Dernier message: 31/07/2002, 14h26

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo