Symfony2 - Удаление демонстрации AcmeBundle приводит к ошибке поставщика безопасности

Я загрузил и установил стандартную версию Symfony2. Я выполнил все шаги, описанные в github readme, чтобы удалить AcmeBundle, который служит в качестве демонстрации для фреймворка. При попытке получить доступ к консоли, чтобы дважды проверить мои маршруты:

$ php app/console router:debug

Я получаю следующую ошибку:

[Symfony\Component\Config\Definition\Exception\InvalidConfigurationException]  
The child node "providers" at path "security" must be configured. 

Когда я восстанавливаю security.providers в моем файле security.yml, поэтому мне остается:

jms_security_extra:
    secure_all_services: false
    expressions: true

security:
    encoders:
        Symfony\Component\Security\Core\User\User: plaintext

    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' ] }

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

    access_control:
        #- { path: ^/login, roles: IS_AUTHENTICATED_ANONYMOUSLY, requires_channel: https }
        #- { path: ^/_internal/secure, roles: IS_AUTHENTICATED_ANONYMOUSLY, ip: 127.0.0.1 }

Я получаю другую, но похожую ошибку:

[InvalidArgumentException]                          
You must at least add one authentication provider.

Я не уверен, что делать, чтобы исправить это. Любые решения?

Ответ 1

Вам нужно предоставить, как этот config:

jms_security_extra:
    secure_all_services: false
    expressions: true

security:
    encoders:
        Symfony\Component\Security\Core\User\User: plaintext

    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' ] }

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

        login:
            security: false

        secured_area:
            anonymous: ~

    access_control:
        #- { path: ^/login, roles: IS_AUTHENTICATED_ANONYMOUSLY, requires_channel: https }
        #- { path: ^/_internal/secure, roles: IS_AUTHENTICATED_ANONYMOUSLY, ip: 127.0.0.1 }

Ответ 2

Для меня минимальный файл, который я мог бы получить, который работает без исключений, следующий:

security:
    firewalls:
        anonymous:
            anonymous: ~

    providers:
        in_memory:
            memory:

Symfony 2.3.3.