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 :

Redirection en session après Authentification [2.x]


Sujet :

Symfony PHP

  1. #1
    Nouveau membre du Club
    Inscrit en
    Décembre 2006
    Messages
    32
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 32
    Points : 39
    Points
    39
    Par défaut Redirection en session après Authentification
    Bonjour,

    Je n'ai pas réussi à faire une redirection une fois après authentification réussite, c'est à dire une fois authentification réussite, je retombe sur ma dernière page visité, sur lequelle j'étais.


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    // Security.yml:
        form_login:
              check_path: /demo/secured/login_check
               login_path: /demo/secured/login

  2. #2
    Expert éminent sénior

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Points : 10 726
    Points
    10 726

  3. #3
    Nouveau membre du Club
    Inscrit en
    Décembre 2006
    Messages
    32
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 32
    Points : 39
    Points
    39
    Par défaut Redirect Fail apres Auth.
    Mais je sais bien que la documentation est là mais moi j'attends des snipets car cela ne marche pas!!

    use_referer: true => FAILED
    target_path_parameter: redirect_url => FAILED

    J'attends des réponses précises.Je connais bien la documentation.


    Merci.

  4. #4
    Expert éminent sénior

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Points : 10 726
    Points
    10 726
    Par défaut
    La première chose qu'on te montre c'est default_target_path

  5. #5
    Membre averti
    Homme Profil pro
    Développeur Web
    Inscrit en
    Avril 2012
    Messages
    394
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2012
    Messages : 394
    Points : 347
    Points
    347
    Par défaut
    Comment as tu résolu ton soucis ??

    J'ai une question : mon authentification réussite je me redirige vers : Symfony/web/app_dev.php/route1
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    form_login:
                    default_target_path: /route1
    cette route est accessible au visiteurs anonymes

    Comment je peu faire en sorte lorseque le visiteur anonyme mets l'url Symfony/web/app_dev.php/route1 il va retomber tjrs vers Symfony/web/app_dev.php/login il ne pourra pas accéder, seul l'admin athentifié qui pourra accéder a Symfony/web/app_dev.php/route1!!

  6. #6
    Membre habitué
    Homme Profil pro
    Chef d'entreprise
    Inscrit en
    Mai 2011
    Messages
    122
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Chef d'entreprise
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Mai 2011
    Messages : 122
    Points : 169
    Points
    169
    Par défaut
    Bonjour,

    Il ne faut pas confondre la configuration du formulaire d'authentification et la sécurisation des pages. Default_target_path n'est là que pour dire vers quelle page renvoyait l'utilisateur en cas de succès de l'authentification et si la session en cours ne comprend aucune page précédente.

    Pour sécuriser une URL, il faut passer par les access_control. Dans ton cas, cela pourrait donner :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    access_control:
      - { path: ^/route1, roles: ROLE_ADMIN }
    Tout est là

  7. #7
    Membre averti
    Homme Profil pro
    Développeur Web
    Inscrit en
    Avril 2012
    Messages
    394
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2012
    Messages : 394
    Points : 347
    Points
    347
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    access_control:
      - { path: ^/route1, roles: ROLE_ADMIN }
    Tout est là[/QUOTE]

    Bonjour très bien Merci !! dans ce cas y a seulement la route : route1 et je fais comment pour toutes les routes de l'application, soit sécuriser seul admin y accède ?

  8. #8
    Membre habitué
    Homme Profil pro
    Chef d'entreprise
    Inscrit en
    Mai 2011
    Messages
    122
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Chef d'entreprise
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Mai 2011
    Messages : 122
    Points : 169
    Points
    169
    Par défaut
    Tu as un exemple dans le lien que je t'ai donné qui répond exactement à ce que tu recherches.
    A partir du moment où l'on comprend le fonctionnement des access_control, ce que tu souhaites est très simple à réaliser.

  9. #9
    Membre averti
    Homme Profil pro
    Développeur Web
    Inscrit en
    Avril 2012
    Messages
    394
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2012
    Messages : 394
    Points : 347
    Points
    347
    Par défaut
    j'ai fait ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    access_control:
            - { path: ^/login, role: IS_AUTHENTICATED_ANONYMOUSLY }
            - { path: /.*, roles: ROLE_ADMIN }
    Ca marche mais je reste tjrs autant que Admi, quand je clique sur Logout !! ca ne marche pas !!

  10. #10
    Membre habitué
    Homme Profil pro
    Chef d'entreprise
    Inscrit en
    Mai 2011
    Messages
    122
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Chef d'entreprise
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Mai 2011
    Messages : 122
    Points : 169
    Points
    169
    Par défaut
    As-tu paramétré logout dans ton fichier security.yml ?
    As-tu bien une route logout qui correspond ?
    Cette route est-elle bien indiquée là où tu cliques sur "logout" ?

    Il y a 99% de chance que tu solutionnes ton problèmes en répondant à ces questions.

  11. #11
    Membre averti
    Homme Profil pro
    Développeur Web
    Inscrit en
    Avril 2012
    Messages
    394
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2012
    Messages : 394
    Points : 347
    Points
    347
    Par défaut
    Citation Envoyé par Francesco34 Voir le message
    As-tu paramétré logout dans ton fichier security.yml ?
    As-tu bien une route logout qui correspond ?
    Cette route est-elle bien indiquée là où tu cliques sur "logout" ?
    Voila mon security.yml :

    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
    19
    20
    21
    22
    23
    24
    25
    26
    security:
        providers:
            fos_userbundle:
                id: fos_user.user_manager
        encoders:
            "FOS\UserBundle\Model\UserInterface": sha512
        firewalls:
            main:
                pattern: ^/
                form_login:
                    default_target_path: /route1
                    provider: fos_userbundle
                    csrf_provider: form.csrf_provider
                logout: true
                anonymous : ~
     
        access_control:
     
            - { path: ^/login$, role: IS_AUTHENTICATED_ANONYMOUSLY }
            - { path: ^/logout$, role: IS_AUTHENTICATED_ANONYMOUSLY }
            - { path: /.*, roles: ROLE_ADMIN }
     
     
        role_hierarchy:
            ROLE_ADMIN: ROLE_USER
            ROLE_SUPER_ADMIN: ROLE_ADMIN

  12. #12
    Membre habitué
    Homme Profil pro
    Chef d'entreprise
    Inscrit en
    Mai 2011
    Messages
    122
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Chef d'entreprise
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Mai 2011
    Messages : 122
    Points : 169
    Points
    169
    Par défaut
    Il y a effectivement un problème avec ce fichier directement lié avec ce dont on a discuté juste avant. Essaie de bien comprendre ce que tu as écris dans ce fichier et la solution devrait te paraître évidente.

  13. #13
    Membre averti
    Homme Profil pro
    Développeur Web
    Inscrit en
    Avril 2012
    Messages
    394
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2012
    Messages : 394
    Points : 347
    Points
    347
    Par défaut
    Désolé je ne vois pas, certes pour sécuriser la route1 :
    Faut faire:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    access_control:
      - { path: ^/route1, roles: ROLE_ADMIN }
    Pour toutes les routes :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    access_control:
      - { path: ^/.*, roles: ROLE_ADMIN }
    Le soucis c'est que je suis tjrs autant que Admin, la déconnexion ne fonctionne pas, impossible d'etre un anonyme pour s'authentifier encore une fois !!

  14. #14
    Expert éminent sénior

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Points : 10 726
    Points
    10 726
    Par défaut
    Tout est très bien expliquer dans la doc avec des schémas et des exemples
    http://symfony.com/doc/current/book/security.html

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 1
    Dernier message: 30/08/2010, 22h52
  2. Redirection dernière page après authentification
    Par bricechris dans le forum Langage
    Réponses: 6
    Dernier message: 06/02/2010, 16h43
  3. [MySQL] PHP 5:redirection vers la page courante apres authentification
    Par hraiwen dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 29/06/2009, 12h52
  4. Redirection apres authentification
    Par roronnoa dans le forum Développement Web en Java
    Réponses: 4
    Dernier message: 26/11/2008, 11h18
  5. Réponses: 9
    Dernier message: 25/06/2008, 13h40

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