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 :

Problème check_path security.yml


Sujet :

Symfony PHP

  1. #1
    Membre confirmé
    Inscrit en
    Janvier 2005
    Messages
    94
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Janvier 2005
    Messages : 94
    Par défaut Problème check_path security.yml
    Bonjour,
    ça fait deux jours que je tourne en rond, sur tous les forums, je me suis rendu compte qu'en passant en production mon site j'ai un message d'erreur : "you must configure the check path to be handled by the firewall using form_login in your security firewall configuration."

    Or voici mon fichier 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
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    security:
        encoders:
         #   Symfony\Component\Security\Core\User\User: plaintext
            "FOS\UserBundle\Model\UserInterface": sha512
     
        role_hierarchy:
            ROLE_ADMIN:  [ROLE_USER]
            ROLE_SUPER_ADMIN: [ROLE_USER, ROLE_ADMIN, ROLE_ALLOWED_TO_SWITCH]
     
        providers:
            in_memory:
                memory:
                    users:
                        user:  { password: userpass, roles: [ 'ROLE_USER' ] }
                        admin: { password: adminpass, roles: [ 'ROLE_ADMIN' ] }
            fos_userbundle:
                id: fos_user.user_manager
     
     
        firewalls:
            dev:
                pattern:  ^/(_(profiler|wdt)|css|images|js)/
                security: false
     
             # Firewall pour les pages de connexion, inscription, et récupération de mot de passe
            login:
                pattern:   ^/(login$|register|resetting)  # Les adrregister et resetting
                anonymous: true                          # On autorise bien évidemment les anonyesses de ces pages sont login, mes sur ces pages !
     
                               #anonymous: ~
                #http_basic:
                #    realm: "Secured Demo Area"
     
             # Firewall principal pour le reste de notre site
            main:
                pattern: ^/                     # ^/ = tout ce qui commence par / = tout notre site
                anonymous: ~
                form_login:                      # On définit notre méthode d'authentification
     
                    provider:    fos_userbundle  # On lit l'authentification au provider définit plus haut
                    login_path: /login
                    always_use_default_target_path: true
                    default_target_path: /traitementDonnees
                    remember_me: true            # On active la possibilité du "Se souvenir de moi" (désactivé par défaut)
                    check_path: /login_check
     
                remember_me:
                    key:         %secret%        # On définit la clé pour le remember_me (%secret% est un parametre de parameters.ini)
                anonymous:       true            # On autorise les utilisateurs anonymes (non identifiés)
                logout:          true            # On autorise la déconnexion manuelle (désactivé par défaut)
        access_control:
        # liste des pages accessibles a tous les utilisateurs
            - { path: ^/login, roles: IS_AUTHENTICATED_ANONYMOUSLY}
            #- { path: ^/login, roles: IS_AUTHENTICATED_ANONYMOUSLY, requires_channel: https }
            #- { path: ^/_internal, roles: IS_AUTHENTICATED_ANONYMOUSLY, ip: 127.0.0.1 }
            #route accessibles si authentifiées
            - { path: ^/admin/.*, role: ROLE_ADMIN }
            - { path: ^/, role: ROLE_USER}
    J'obtiens le même message d'erreur si je lance l'url /check_login en dev.
    Je comprends pas bien pour on passe par le check_login en prod et pas en dev, je dois avoir un soucis quelque part mais ne vois pas trop où.
    Par avance merci.

  2. #2
    Membre confirmé
    Inscrit en
    Janvier 2005
    Messages
    94
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Janvier 2005
    Messages : 94
    Par défaut
    En fait le soucis ne se produit que si le débug n'est pas activé... une idée?

  3. #3
    Membre expérimenté
    Homme Profil pro
    Développeur Web
    Inscrit en
    Octobre 2009
    Messages
    126
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Octobre 2009
    Messages : 126
    Par défaut routing, conf_dev, conf_prod
    Salut

    Qu'en est il du fichier de routing et des conf_dev et conf_prod ?
    la route login_check existe ?
    le cas échéant un cache:clear peut être salvateur

    A+

  4. #4
    Membre confirmé
    Inscrit en
    Janvier 2005
    Messages
    94
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Janvier 2005
    Messages : 94
    Par défaut
    Citation Envoyé par matlow Voir le message
    Salut

    Qu'en est il du fichier de routing et des conf_dev et conf_prod ?
    la route login_check existe ?
    le cas échéant un cache:clear peut être salvateur

    A+
    Le routing est ok, la route existe, voici les fichier conf
    dev :
    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
     
    imports:
        - { resource: config.yml }
     
    framework:
        router:   { resource: "%kernel.root_dir%/config/routing_dev.yml" }
        profiler: { only_exceptions: false }
     
    web_profiler:
        toolbar: true
        intercept_redirects: false
     
    monolog:
        handlers:
            main:
                type:  stream
                path:  %kernel.logs_dir%/%kernel.environment%.log
                level: debug
            firephp:
                type:  firephp
                level: info
     
    assetic:
        use_controller: true

    prod :
    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
    imports:
        - { resource: config.yml }
     
    #doctrine:
    #    orm:
    #        metadata_cache_driver: apc
    #        result_cache_driver: apc
    #        query_cache_driver: apc
     
    monolog:
        handlers:
            main:
                type:         fingers_crossed
                action_level: error
                handler:      nested
            nested:
                type:  stream
                path:  %kernel.logs_dir%/%kernel.environment%.log
                level: debug
    le cache clear ne change rien

    merci pour ta réponse

  5. #5
    Membre éprouvé
    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
    Par défaut
    Citation Envoyé par Cibou Voir le message
    Le routing est ok, la route existe
    Elle est bien dans ton fichier routing et non dans routing_dev ?

  6. #6
    Membre confirmé
    Inscrit en
    Janvier 2005
    Messages
    94
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Janvier 2005
    Messages : 94
    Par défaut
    Citation Envoyé par Francesco34 Voir le message
    Elle est bien dans ton fichier routing et non dans routing_dev ?
    oui dans le routing j'appelle les routes de mon bundle user hérité de FosUser, je ne comprends pas trop pourquoi ça fonctionne en prod lorsque j'active le mode débug.. :/

  7. #7
    Membre éprouvé
    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
    Par défaut
    As-tu bien vidé le cache de prod "php app/console cache:clear -env=prod" ?

    Edit: Je viens de m'apercevoir que tu parles des fois de la route login_check et des fois de la route check_login. Vérifies aussi que tu ais bien login_check partout.

  8. #8
    Membre confirmé
    Inscrit en
    Janvier 2005
    Messages
    94
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Janvier 2005
    Messages : 94
    Par défaut
    Citation Envoyé par Francesco34 Voir le message
    As-tu bien vidé le cache de prod "php app/console cache:clear -env=prod" ?

    Edit: Je viens de m'apercevoir que tu parles des fois de la route login_check et des fois de la route check_login. Vérifies aussi que tu ais bien login_check partout.
    oui j'ai bien clear la prod,
    le soucis vient de check_path qui appelle la route login_check cf le message plus haut..
    merci de ton aide

  9. #9
    Membre éprouvé
    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
    Par défaut
    Justement, tu dis dans ton premier message obtenir cette erreur avec la route /check_login et non avec /login_check. Donc as-tu bien /login_check partout ou as-tu un /check_login qui traîne quelque part ?

  10. #10
    Membre confirmé
    Inscrit en
    Janvier 2005
    Messages
    94
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Janvier 2005
    Messages : 94
    Par défaut
    Citation Envoyé par Francesco34 Voir le message
    Justement, tu dis dans ton premier message obtenir cette erreur avec la route /check_login et non avec /login_check. Donc as-tu bien /login_check partout ou as-tu un /check_login qui traîne quelque part ?
    Non elle ne traine pas erreur de ma part dans le premier post

  11. #11
    Membre éprouvé
    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
    Par défaut
    Essaye de modifier ton security.yml pour supprimer ton firewall de connexion qui peut être à l'origine du problème. Sa présence n'est pas utile avec l'utilisation des access control (il te suffit de rajouter /register et /resetting dans les pages accessibles à tous les utilisateurs).

    Par ailleurs, peux-tu poster ce que t'affiche ton log de prod au moment de cette erreur ?

  12. #12
    Membre confirmé
    Inscrit en
    Janvier 2005
    Messages
    94
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Janvier 2005
    Messages : 94
    Par défaut
    Citation Envoyé par Francesco34 Voir le message
    Essaye de modifier ton security.yml pour supprimer ton firewall de connexion qui peut être à l'origine du problème. Sa présence n'est pas utile avec l'utilisation des access control (il te suffit de rajouter /register et /resetting dans les pages accessibles à tous les utilisateurs).

    Par ailleurs, peux-tu poster ce que t'affiche ton log de prod au moment de cette erreur ?
    Je viens d'enlever le firewall de connexion mais ça ne résout pas le soucis. Voici le log provoqué par l'erreur :
    [2012-10-03 11:41:40] event.DEBUG: Notified event "kernel.request" to listener "Symfony\Bundle\FrameworkBundle\EventListener\SessionListener::onKernelRequest". [] []
    [2012-10-03 11:41:40] event.DEBUG: Notified event "kernel.request" to listener "Symfony\Component\HttpKernel\EventListener\RouterListener::onKernelRequest". [] []
    [2012-10-03 11:41:40] request.INFO: Matched route "fos_user_security_check" (parameters: "_controller": "FOS\UserBundle\Controller\SecurityController::checkAction", "_route": "fos_user_security_check") [] []
    [2012-10-03 11:41:40] event.DEBUG: Notified event "kernel.request" to listener "Symfony\Component\HttpKernel\EventListener\LocaleListener::onKernelRequest". [] []
    [2012-10-03 11:41:40] event.DEBUG: Notified event "kernel.request" to listener "Symfony\Component\Security\Http\Firewall::onKernelRequest". [] []
    [2012-10-03 11:41:40] security.DEBUG: Read SecurityContext from the session [] []
    [2012-10-03 11:41:40] security.DEBUG: Reloading user from user provider. [] []
    [2012-10-03 11:41:40] doctrine.DEBUG: SELECT t0.username AS username1, t0.username_canonical AS username_canonical2, t0.email AS email3, t0.email_canonical AS email_canonical4, t0.enabled AS enabled5, t0.salt AS salt6, t0.password AS password7, t0.last_login AS last_login8, t0.locked AS locked9, t0.expired AS expired10, t0.expires_at AS expires_at11, t0.confirmation_token AS confirmation_token12, t0.password_requested_at AS password_requested_at13, t0.roles AS roles14, t0.credentials_expired AS credentials_expired15, t0.credentials_expire_at AS credentials_expire_at16, t0.id AS id17, t0.dte_creation AS dte_creation18, t0.nom AS nom19, t0.prenom AS prenom20, t0.societe_id AS societe_id21, t0.profil_id AS profil_id22 FROM user t0 WHERE t0.id = ? LIMIT 1 [1] []
    [2012-10-03 11:41:40] security.DEBUG: Username "Yannick" was reloaded from user provider. [] []
    [2012-10-03 11:41:40] event.DEBUG: Notified event "kernel.controller" to listener "Sensio\Bundle\FrameworkExtraBundle\EventListener\ControllerListener::onKernelController". [] []
    [2012-10-03 11:41:40] event.DEBUG: Notified event "kernel.controller" to listener "Sensio\Bundle\FrameworkExtraBundle\EventListener\ParamConverterListener::onKernelController". [] []
    [2012-10-03 11:41:40] event.DEBUG: Notified event "kernel.controller" to listener "Sensio\Bundle\FrameworkExtraBundle\EventListener\TemplateListener::onKernelController". [] []
    [2012-10-03 11:41:40] event.DEBUG: Notified event "kernel.exception" to listener "Symfony\Component\Security\Http\Firewall\ExceptionListener::onKernelException". [] []
    [2012-10-03 11:41:40] event.DEBUG: Notified event "kernel.exception" to listener "Symfony\Component\HttpKernel\EventListener\ExceptionListener::onKernelException". [] []
    [2012-10-03 11:41:40] request.CRITICAL: RuntimeException: You must configure the check path to be handled by the firewall using form_login in your security firewall configuration. (uncaught exception) at C:\wamp\www\magsys-services\vendor\friendsofsymfony\user-bundle\FOS\UserBundle\Controller\SecurityController.php line 68 [] []
    [2012-10-03 11:41:40] event.DEBUG: Notified event "kernel.request" to listener "Symfony\Bundle\FrameworkBundle\EventListener\SessionListener::onKernelRequest". [] []
    [2012-10-03 11:41:40] event.DEBUG: Notified event "kernel.request" to listener "Symfony\Component\HttpKernel\EventListener\RouterListener::onKernelRequest". [] []
    [2012-10-03 11:41:40] event.DEBUG: Notified event "kernel.request" to listener "Symfony\Component\HttpKernel\EventListener\LocaleListener::onKernelRequest". [] []
    [2012-10-03 11:41:40] event.DEBUG: Notified event "kernel.request" to listener "Symfony\Component\Security\Http\Firewall::onKernelRequest". [] []
    [2012-10-03 11:41:40] event.DEBUG: Notified event "kernel.controller" to listener "Sensio\Bundle\FrameworkExtraBundle\EventListener\ControllerListener::onKernelController". [] []
    [2012-10-03 11:41:40] event.DEBUG: Notified event "kernel.controller" to listener "Sensio\Bundle\FrameworkExtraBundle\EventListener\ParamConverterListener::onKernelController". [] []
    [2012-10-03 11:41:40] event.DEBUG: Notified event "kernel.controller" to listener "Sensio\Bundle\FrameworkExtraBundle\EventListener\TemplateListener::onKernelController". [] []
    [2012-10-03 11:41:40] event.DEBUG: Notified event "kernel.response" to listener "Symfony\Component\Security\Http\Firewall\ContextListener::onKernelResponse". [] []
    [2012-10-03 11:41:40] event.DEBUG: Notified event "kernel.response" to listener "Symfony\Component\Security\Http\RememberMe\ResponseListener::onKernelResponse". [] []
    [2012-10-03 11:41:40] event.DEBUG: Notified event "kernel.response" to listener "Sensio\Bundle\FrameworkExtraBundle\EventListener\CacheListener::onKernelResponse". [] []
    [2012-10-03 11:41:40] event.DEBUG: Notified event "kernel.response" to listener "Symfony\Component\HttpKernel\EventListener\ResponseListener::onKernelResponse". [] []
    [2012-10-03 11:41:40] event.DEBUG: Notified event "kernel.response" to listener "Symfony\Component\HttpKernel\EventListener\StreamedResponseListener::onKernelResponse". [] []
    [2012-10-03 11:41:40] event.DEBUG: Listener "Symfony\Component\HttpKernel\EventListener\ExceptionListener::onKernelException" stopped propagation of the event "kernel.exception". [] []
    [2012-10-03 11:41:40] event.DEBUG: Notified event "kernel.response" to listener "Symfony\Component\Security\Http\Firewall\ContextListener::onKernelResponse". [] []
    [2012-10-03 11:41:40] security.DEBUG: Write SecurityContext in the session [] []
    [2012-10-03 11:41:40] event.DEBUG: Notified event "kernel.response" to listener "Symfony\Component\Security\Http\RememberMe\ResponseListener::onKernelResponse". [] []
    [2012-10-03 11:41:40] event.DEBUG: Notified event "kernel.response" to listener "Sensio\Bundle\FrameworkExtraBundle\EventListener\CacheListener::onKernelResponse". [] []
    [2012-10-03 11:41:40] event.DEBUG: Notified event "kernel.response" to listener "Symfony\Component\HttpKernel\EventListener\ResponseListener::onKernelResponse". [] []
    [2012-10-03 11:41:40] event.DEBUG: Notified event "kernel.response" to listener "Symfony\Component\HttpKernel\EventListener\StreamedResponseListener::onKernelResponse". [] []

  13. #13
    Membre éprouvé
    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
    Par défaut
    Tu as bien vidé le cache de prod après avoir modifié ton fichier security.yml ?

  14. #14
    Membre confirmé
    Inscrit en
    Janvier 2005
    Messages
    94
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Janvier 2005
    Messages : 94
    Par défaut
    Citation Envoyé par Francesco34 Voir le message
    Tu as bien vidé le cache de prod après avoir modifié ton fichier security.yml ?
    oui tout a été effacé avec la commande : php app/console cache:clear --env=prod

  15. #15
    Membre éprouvé
    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
    Par défaut
    Dans ta configuration de FOSUB (fichier config.yml), est-ce que la valeur de firewall_name correspond bien au nom du firewall de ton fichier security.yml (attention à la casse) ?

  16. #16
    Membre confirmé
    Inscrit en
    Janvier 2005
    Messages
    94
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Janvier 2005
    Messages : 94
    Par défaut
    Citation Envoyé par Francesco34 Voir le message
    Dans ta configuration de FOSUB (fichier config.yml), est-ce que la valeur de firewall_name correspond bien au nom du firewall de ton fichier security.yml (attention à la casse) ?
    oui j'ai bien main dans les deux...

Discussions similaires

  1. [Security] Problème Spring Security
    Par ahmedpa dans le forum Spring
    Réponses: 2
    Dernier message: 28/03/2013, 20h23
  2. [Security] Problème Spring Security Taglib
    Par exmortice dans le forum Spring
    Réponses: 1
    Dernier message: 28/01/2013, 21h13
  3. [1.x] filtres et security.yml
    Par thecanea dans le forum Symfony
    Réponses: 2
    Dernier message: 23/04/2010, 15h22
  4. [Security] Problème spring-security-core 2.0.4
    Par bj304075 dans le forum Spring
    Réponses: 1
    Dernier message: 17/06/2009, 16h14
  5. Problème WS-Security sous CXF
    Par Helifyl dans le forum Services Web
    Réponses: 8
    Dernier message: 26/11/2008, 17h46

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