2012-10-23 13 views
11

Symfony2標準版をダウンロードしてインストールしました。フレームワークのデモとして機能するAcmeBundleを削除するには、github readmeに詳述されているすべてのステップを実行しました。私のルートをダブルチェックしてコンソールにアクセスしようとすると:私は私のsecurity.ymlファイルにsecurity.providers削除を取り消す場合はSymfony2 - AcmeBundleデモを削除するとセキュリティプロバイダエラーが発生する

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

ので、私はと左だ:

$ php app/console router:debug 

私は次のエラーを取得します:

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. 

私はそれを修正するために何をすべきかわかりません。どんな解決策ですか?あなたが提供する必要がある

答えて

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 } 
+0

+1プロバイダがない場合は、プロバイダを定義する必要はありません。私は、セキュリティバンドルがこれを必要とする理由は、セキュリティが必要ない場合はバンドルを必要としないためです。 – Alex

+4

これを反映するために、ドキュメントを実際に更新する必要があります。あなたの答えは、単純にそれらのエントリを完全に削除/削除するのとはまったく異なるものです。 –

+3

Githubにhttps://github.com/symfony/symfony-standard/issues/434 – Alex

10

、例外なしで動作し、私は得ることができ、最小限のファイルがある:

security: 
    firewalls: 
     anonymous: 
      anonymous: ~ 

    providers: 
     in_memory: 
      memory: 

symfonyの2.3.3。

+1

これは2.4.1でも有効です。 config.ymlのインポートをコメントアウトします – jah

関連する問題