Question

J'utilise Symfony 2 et le FosuserBundle. Je peux me connecter, déconnecter et afficher le profil.

Problème: Lorsque je vais à "/ enregistrer", remplissez le formulaire et appuyez sur Entrée, j'obtiens l'erreur suivante:

Vous avez demandé un service inexistant "Security.user_checker". 500 Erreur du serveur interne - ServiceNotFoundException

Il semble que je l'ai fait à une configuration supplémentaire, mais je ne trouve rien à ce sujet.

Partie de config.yml:

fos_user:
    db_driver: orm
    firewall_name: fos_user
    user_class: Blogger\BlogBundle\Entity\User

Security.yml:

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:
            users:
                user:  { password: userpass, roles: [ 'ROLE_USER' ] }
                admin: { password: adminpass, roles: [ 'ROLE_ADMIN' ] }
        fos_user:
            id: fos_user.user_manager

    firewalls:
        dev:
            pattern:  ^/(_(profiler|wdt)|css|images|js)/
            security: false

        fos_user:
            pattern:    ^/
            provider:   fos_user
            form_login:
                check_path: /login_check
                login_path: /login
            logout:
                path:   /logout
                target: /
            anonymous: ~

    access_control:
        - { path: /secured/admin, roles: ROLE_ADMIN }
        - { path: ^/login$, roles: IS_AUTHENTICATED_ANONYMOUSLY }
        - { path: ^/register, roles: IS_AUTHENTICATED_ANONYMOUSLY }

METTRE À JOUR

Trace de la pile:

http://i.stack.imgur.com/vsGwF.png

Était-ce utile?

La solution

Assurez-vous de spécifier une version pour FosuserBundle. La tête du référentiel est alignée sur la tête de Symfony, et non 2.0.9.

[FOSUserBundle]
    git=git://github.com/FriendsOfSymfony/FOSUserBundle.git
    target=/bundles/FOS/UserBundle
    version=1.0.0

Autres conseils

Si vous mettez à jour FosuserBundle (ou tout paquet d'ailleurs), vous devez vous assurer que vous imitez les modifications apportées dans le FosuserBundle sur tous les fichiers que vous écrasez.

Dans mon cas particulier, dans le contrôle d'enregistrement FosuserBundle a changé une valeur de Security.user_checker à fos_user.user_checker dans la méthode AuthenticateUser, j'ai donc apporté le même changement dans mon contrôleur.

Chaque fois que vous faites une mise à jour des fournisseurs, vous devez vous assurer que les fichiers (contrôleurs, services, etc.), vous écrasez dans votre bundle ne dépend pas d'une classe de service ou d'une méthode qui a été supprimée.

Enregistrez-vous les services non? Ou peut-être que vous avez oublié Ajouter un routage pour ce service?

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top