Pregunta

Yo uso Symfony 2 y el FosuserBundle.Puedo iniciar sesión, cerrar sesión y ver el perfil.

Problema: Cuando voy a "/ Registro", complete el formulario y presione ENTER i Obtenga el siguiente error:

Usted ha solicitado un servicio inexistente "Security.User_Checker". 500 Error interno del servidor - ServiceNotFoundException

Parece que tengo que hacer con alguna configuración adicional, pero no puedo encontrar nada al respecto.

parte de config.yml:

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

seguridad.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 }

actualización

STICK TRACE:

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

¿Fue útil?

Solución

Asegúrese de especificar una versión para FOSUserBundle.La cabecera del repositorio está alineada con la cabecera de Symfony, no con la 2.0.9.

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

Otros consejos

Si está actualizando FOSUserBundle (o cualquier paquete para el caso), debe asegurarse de imitar los cambios realizados en FOSUserBundle en cualquier archivo que sobrescriba.

En mi caso particular, en el RegistrationController FOSUserBundle cambió un valor de security.user_checker a fos_user.user_checker en el método authenticateUser, así que hice el mismo cambio en mi controlador.

Cada vez que actualiza los proveedores, debe asegurarse de que los archivos (controladores, servicios, etc.) que está sobrescribiendo en su paquete no dependan de una clase de servicio o método que se haya eliminado.

¿Regístrese los servicios? ¿O tal vez olvidaste agregar un enrutamiento para este servicio?

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top