インストールFOSUserBundle
し、プロジェクトで使用しています。そのログインページは不明なパスにリダイレクトされます/_wdt/50366043f414d
。default_target_path
アンダーform_login
インファイルを変更しましたsecurity.yml
が、有効になりませんでした。
FOSUserBundleのログインページのターゲットパスを変更するにはどうすればよいですか?
インストールFOSUserBundle
し、プロジェクトで使用しています。そのログインページは不明なパスにリダイレクトされます/_wdt/50366043f414d
。default_target_path
アンダーform_login
インファイルを変更しましたsecurity.yml
が、有効になりませんでした。
FOSUserBundleのログインページのターゲットパスを変更するにはどうすればよいですか?
symfonyのドキュメントに示されているように、
always_use_default_target_path
をに設定する必要がありますtrue
#app/config/security.yml
firewalls:
main:
pattern: ^/
form_login:
login_path: /login
default_target_path: /my/desired/path
always_use_default_target_path: true
同じ問題が発生しました。この問題が発生した理由は、SymfonyがWebデバッグツールバー(エラーの「_wdt」ビット)を読み込もうとしたためです。このツールバーには、最後に呼び出される独自のルートがあります。ページの読み込み。私の場合、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 }
これは古い問題かもしれませんが、access_controlを変更する代わりに、現在のSymfony2設定はデバッグツールバー用の追加のファイアウォールを備えています。
# Disabling the security for the web debug toolbar, the profiler and Assetic.
dev:
pattern: ^/(_(profiler|wdt)|css|images|js)/
security: false