2012-08-23 11 views
5

के साथ काम नहीं करता है मैंने FOSUserBundle स्थापित किया है और मैं इसे अपने प्रोजेक्ट में उपयोग कर रहा हूं। इसका लॉगिन पेज अज्ञात पथ /_wdt/50366043f414d पर रीडायरेक्ट करता है। मैंने form_login के तहत security.yml फ़ाइल में बदल दिया, लेकिन यह प्रभावी नहीं हुआ।default_target_path FOSUserBundle

मैं FOSUserBundle में लॉगिन पृष्ठ का लक्ष्य पथ कैसे बदल सकता हूं?

उत्तर

13

मैं के रूप में symfony documentation

#app/config/security.yml 

firewalls: 
    main: 
     pattern: ^/ 
     form_login: 
      login_path: /login 
      default_target_path: /my/desired/path 
      always_use_default_target_path: true 
6

में दिखाया गया है, always_use_default_target_pathtrue को सेट करना होगा मैं एक ही मुद्दा था, और कारण है कि मैं इस समस्या हो रही थी था क्योंकि Symfony वेब डीबग टूलबार (लोड करने के लिए कोशिश कर रहा था इसलिए त्रुटि में "_wdt" बिट), जिसके पास अपने स्वयं के मार्ग हैं जिन्हें पेज लोड के अंत में बुलाया जाता है। मेरे मामले में, मैं बहुत तरह मेरे security.yml कॉन्फ़िगर किया गया था:

एप्लिकेशन/config/security.yml

security: 
    encoders: 
     FOS\UserBundle\Model\UserInterface: sha512 

    role_hierarchy: 
     ROLE_ADMIN:  ROLE_USER 
     ROLE_SUPER_ADMIN: ROLE_ADMIN 

    providers: 
     fos_userbundle: 
      id: fos_user.user_provider.username 

    firewalls: 
     main: 
      pattern: ^/ 
      form_login: 
       provider: fos_userbundle 
       csrf_provider: form.csrf_provider 
      logout:  true 
      anonymous: true 

    access_control: 
     - { path: ^/login$, role: IS_AUTHENTICATED_ANONYMOUSLY } 
     - { path: ^/register, role: IS_AUTHENTICATED_ANONYMOUSLY } 
     - { path: ^/resetting, role: IS_AUTHENTICATED_ANONYMOUSLY } 
     - { path: ^/css, role: IS_AUTHENTICATED_ANONYMOUSLY } 
     - { path: ^/js, role: IS_AUTHENTICATED_ANONYMOUSLY } 
     - { path: ^/, role: ROLE_USER } 

इसका मतलब यह है कि अगर उपयोगकर्ता जड़ के पीछे कुछ भी के लिए एक पृष्ठ को खोलने के लिए कोशिश कर रहा है "/अज्ञात उपयोगकर्ताओं के लिए _wdt "भाग और अनुमति देने के लिए यह"।, वह में लॉग इन करने की आवश्यकता है

तरह से मैं समस्या तय जोड़कर था ":

access_control: 
     - { path: ^/login$, role: IS_AUTHENTICATED_ANONYMOUSLY } 
     - { path: ^/register, role: IS_AUTHENTICATED_ANONYMOUSLY } 
     - { path: ^/resetting, role: IS_AUTHENTICATED_ANONYMOUSLY } 
     - { path: ^/css, role: IS_AUTHENTICATED_ANONYMOUSLY } 
     - { path: ^/js, role: IS_AUTHENTICATED_ANONYMOUSLY } 
     - { path: ^/_wdt, role: IS_AUTHENTICATED_ANONYMOUSLY } 
     - { path: ^/, role: ROLE_USER } 
+0

इसके लिए धन्यवाद! यह असली समस्या को हल कर रहा है। दुर्भाग्य से उत्तर का चयन केवल समस्या की उपस्थिति को "ओवरराइट" करता है। –

0

यह एक पुरानी मुद्दा हो सकता है, लेकिन के बजाय f को access_control को बदलकर वर्तमान Symfony2 कॉन्फ़िगरेशन में डिबग टूलबार के लिए अतिरिक्त फ़ायरवॉल है:

# Disabling the security for the web debug toolbar, the profiler and Assetic. 
    dev: 
     pattern: ^/(_(profiler|wdt)|css|images|js)/ 
     security: false 
संबंधित मुद्दे