2012-08-23 22 views
5

Tôi đã cài đặt FOSUserBundle và tôi đang sử dụng nó trong dự án của mình. Trang đăng nhập của nó chuyển hướng đến một đường dẫn không xác định /_wdt/50366043f414d. Tôi đã thay đổi default_target_path dưới form_login trong security.yml tệp, nhưng nó không có hiệu lực.default_target_path không hoạt động với FOSUserBundle

Làm cách nào để thay đổi đường dẫn đích của trang đăng nhập trong FOSUserBundle?

Trả lời

13

tôi phải thiết lập các always_use_default_target_path để true, như thể hiện trong 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

tôi đã cùng một vấn đề, và lý do tôi đã có vấn đề này là vì Symfony đã cố gắng để tải web debug toolbar (do đó bit "_wdt" trong lỗi), có các tuyến riêng của nó được gọi ở cuối tải trang. Trong trường hợp của tôi, tôi đã cấu hình security.yml tôi như vậy:

app/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 } 

Điều này có nghĩa rằng nếu người dùng đang cố gắng để mở một trang cho bất cứ điều gì đằng sau những gốc " /"., ông được yêu cầu phải đăng nhập

Con đường tôi cố định vấn đề là bằng cách thêm '_wdt' một phần và cho phép nó cho người dùng vô danh:

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

Cảm ơn bạn! Điều này giải quyết vấn đề thực sự. Thật không may câu trả lời được chọn chỉ "ghi đè" sự xuất hiện của vấn đề. –

0

Đây có thể là một vấn đề cũ nhưng thay vào đó o f thay đổi access_control cấu hình Symfony2 hiện tại có thêm tường lửa cho thanh công cụ gỡ lỗi:

# Disabling the security for the web debug toolbar, the profiler and Assetic. 
    dev: 
     pattern: ^/(_(profiler|wdt)|css|images|js)/ 
     security: false 
Các vấn đề liên quan