2012-10-23 5 views
11

I pobraniu i zainstalowaniu Standard Edition Symfony2. Zrobiłem wszystkie kroki opisane w github readme, aby usunąć AcmeBundle, który służy jako wersja demonstracyjna do frameworka. Podczas próby dostępu do konsoli, aby dokładnie sprawdzić moje trasy:Symfony2 - Usuwanie wyników demo AcmeBundle w błąd dostawca zabezpieczeń

$ php app/console router:debug 

pojawia się następujący błąd:

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

Kiedy cofnąć security.providers w moim pliku security.yml, więc pozostaje mi:

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 } 

mam inny ale podobny błąd:

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

Nie jestem pewien, co zrobić, aby to naprawić. Jakieś rozwiązania?

Odpowiedz

20

Potrzebne są przewiduje się ten 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 } 
+0

+1 ale nie należy naprawdę trzeba określić dostawcę jeśli nie masz. Sądzę, że powodem, dla którego pakiet bezpieczeństwa tego wymaga, jest to, że jeśli nie potrzebujesz zabezpieczeń, nie potrzebujesz tego pakietu. – Alex

+4

Dokumenty powinny zostać zaktualizowane, aby to odzwierciedlić. Twoja odpowiedź jest znacznie inna niż zwykłe usuwanie/usuwanie tych wpisów wprost. –

+3

Dodany problem na Github: https://github.com/symfony/symfony-standard/issues/434 – Alex

10

Dla mnie, minimalny plik mogę uzyskać, który działa bez wyjątków jest:

security: 
    firewalls: 
     anonymous: 
      anonymous: ~ 

    providers: 
     in_memory: 
      memory: 

Symfony 2.3.3.

+1

to również działa w wersji 2.4.1. więc komentuje import w config.yml – jah

Powiązane problemy