2011-10-27 3 views
10

의 메모리 공급자를 사용하여 사용자를 로그인하십시오. 이제 user/ userpass를 사용하여 로그인하려고했으나 여전히 "잘못된 자격 증명"메시지가 표시됩니다. 이것은 내 security.yml입니다.FOSUserBundle을 설치 한 후 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" 

아무 생각하세요?

잘못된 공급자를 사용하고있는 방화벽 섹션에서 심포니 2.0.4

답변

19

체인하여 제공 : 사용자 공급자의 chian 외에도

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

symfony 2.1의 경우 구문이 약간 변경되었습니다 : chain_provider :'와'providers :'사이에 추가 키'chain :'을 추가해야합니다 : 'providers : chain_provider : 체인 : 제공자 : [in_memory, fos_userbundle]' 자세한 내용은 [현재 문서] (http://symfony.com/doc/current/book/security.html#using-multiple-user-providers)를 참조하십시오. –

5

: 대신 in_memory의 fos_userbundle. 원하는 경우 chain them 수 있습니다. 이 같은

+0

감사하지만 working..I는 "공급자 : in_memory"지금이 아니다. – ziiweb

+1

당신은 prod 또는 dev env에서 일하고 있습니까? 캐시를 지우셨습니까? – dlondero

2

, 난 당신이 당신의 웹 애플리케이션에 암호를 인코딩하는 것이 좋습니다, 당신은 도구를 사용하여 온라인 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

체인은이 같은 심포니 2.3 제공자 :

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 
관련 문제