2011-10-27 11 views
10

po zainstalowaniu FOSUserBundle, teraz próbuję zalogować się za pomocą użytkownika/ , ale wciąż otrzymuję komunikat "Złe dane uwierzytelniające". To jest mój security.yml:Użytkownik logowania przy użyciu dostawcy pamięci w Symfony

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: 
      users: 
       user: { password: userpass, roles: [ 'ROLE_USER' ] } 
       admin: { password: adminpass, roles: [ 'ROLE_ADMIN' ] } 
     fos_userbundle: 
      id: fos_user.user_manager 

    firewalls: 
     main: 
      pattern: ^/ 
      form_login: 
       provider: fos_userbundle 
      logout:  true 
      anonymous: true 
      #anonymous: ~ 
      #http_basic: 
      # realm: "Secured Demo Area" 

Każdy pomysł?

symfony 2.0.4

Odpowiedz

19

Chain twoi dostawcy jak ten:

providers: 
    chain_provider: 
     providers: [in_memory, fos_userbundle] 
    in_memory: 
     users: 
      user: { password: userpass, roles: [ 'ROLE_USER' ] } 
      admin: { password: adminpass, roles: [ 'ROLE_ADMIN' ] } 

    fos_userbundle: 
     id: fos_user.user_manager 

    firewalls: 
     main: 
      pattern: ^/ 
      form_login: 
       provider: chain_provider 
      logout:  true 
      anonymous: true 
      switch_user: true 
     dev: 
      pattern: ^/(_(profiler|wdt)|css|images|js)/ 
      security: false 
+5

Dla Symfony 2.1, składnia zmieniła się nieznacznie: pomiędzy 'chain_provider:' i 'provider:', musisz dodać dodatkowy klucz, 'chain:', tak jak: 'dostawcy: Chain_provider: sieć: dostawców : [in_memory, fos_userbundle] ' Aby uzyskać więcej informacji, zobacz [aktualna dokumentacja] (http://symfony.com/doc/current/book/security.html#using-multiple-user-providers). –

5

W sekcji zapory używasz niewłaściwego dostawcy: fos_userbundle zamiast in_memory. Jeśli chcesz, możesz chain them.

+0

dzięki ale to nie working..I mają teraz "dostawca: in_memory". – ziiweb

+1

Czy pracujesz w prod lub dev env? Jeśli prod wyczyściłeś pamięć podręczną? – dlondero

2

Oprócz Chian od dostawcy Użytkownicy, proponuję, aby zakodować hasła w aplikacji internetowej, można zakodować za pomocą narzędzi internetowych sh1 link to encode online.

encoders: 
    "Symfony\Component\Security\Core\User\User": 
     algorithm: sha1 
     iterations: 1 
     encode_as_base64: false 
    "FOS\UserBundle\Model\UserInterface": sha512 

providers: 
chain_provider: 
    providers: [in_memory, fos_userbundle] 
in_memory: 
    users: 
     user: { password: 45f106ef4d5161e7aa38cf6c666607f25748b6ca, roles: [ 'ROLE_USER' ] } # userpass as password 
     admin: { password: 74913f5cd5f61ec0bcfdb775414c2fb3d161b620, roles: [ 'ROLE_ADMIN' ] } # adminpass as password 

fos_userbundle: 
    id: fos_user.user_manager 

firewalls: 
    main: 
     pattern: ^/ 
     form_login: 
      provider: chain_provider 
     logout:  true 
     anonymous: true 
     switch_user: true 
    dev: 
     pattern: ^/(_(profiler|wdt)|css|images|js)/ 
     security: false 
0

łańcuchowe twoi dostawcy dla symfony 2.3, takie jak ten:

providers: 

    in_memory: 
     users: 
      user: { password: userpass, roles: [ 'ROLE_USER' ] } 
      admin: { password: adminpass, roles: [ 'ROLE_ADMIN' ] } 

    fos_userbundle: 
     id: fos_user.user_manager 

    chain_provider: 
     chain: 
      providers: [in_memory, fos_userbundle] 

    firewalls: 
     main: 
      pattern: ^/ 
      form_login: 
       provider: chain_provider 
      logout:  true 
      anonymous: true 
      switch_user: true 
     dev: 
      pattern: ^/(_(profiler|wdt)|css|images|js)/ 
      security: false 
Powiązane problemy