2011-10-27 13 views
10

में मेमोरी प्रदाता का उपयोग कर लॉगिन उपयोगकर्ता, अब मैं उपयोगकर्ता/ उपयोगकर्तापास के साथ लॉगिन करने का प्रयास कर रहा हूं लेकिन मुझे अभी भी "खराब प्रमाण-पत्र" संदेश मिलता है।FOSUserBundle इंस्टॉल करने के बाद सिम्फनी

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" 

किसी भी विचार: यह मेरा security.yml है?

सिम्फोनी 2.0.4

उत्तर

19

चेन इस तरह से अपनी प्रदाताओं:

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 के बीच:' और 'प्रदाताओं:,' इतना की तरह: ', आप एक अतिरिक्त कुंजी,' श्रृंखला जोड़ने की जरूरत है 'प्रदाताओं: 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

क्या आप प्रोड या देव एनवी में काम कर रहे हैं? अगर आपने अपना कैश साफ़ किया है? – dlondero

2

उपयोगकर्ता प्रदाता के एक chian के अलावा, मैं सुझाव है कि आप अपने वेब अनुप्रयोग में अपना पासवर्ड एन्कोड करने के लिए, आप एक उपकरण से सांकेतिक शब्दों में बदलना कर सकते हैं ऑनलाइन 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 
संबंधित मुद्दे