11

Symfony2標準版をダウンロードしてインストールしました。フレームワークのデモとして機能するAcmeBundleを削除するために、githubreadmeで詳しく説明されているすべての手順を実行しました。コンソールにアクセスしてルートを再確認しようとすると、次のようになります。

$ php app/console router:debug

次のエラーが発生します。

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

security.ymlファイル内のsecurity.providersの削除を取り消すと、次のようになります。

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.

私はそれを修正するために何をすべきかわかりません。解決策はありますか?

4

2 に答える 2

20

この設定のような提供が必要です:

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 }
于 2012-10-23T02:33:41.537 に答える
10

私にとって、例外なく機能する、取得できる最小限のファイルは次のとおりです。

security:
    firewalls:
        anonymous:
            anonymous: ~

    providers:
        in_memory:
            memory:

symfony2.3.​​3。

于 2013-08-26T18:04:52.320 に答える