私は次のルーティングコードを持つsymfony 2.3プロジェクトに取り組んでいます
just2_frontend_logincheck:
pattern: /login_check
持っていない
defaults:{ _controller: testBundle:User:login }
しかし、それは機能しています。しかし、ルーティングがどのように機能しているかはわかりません。出来ますか?ルーティングについてアドバイスしてください。
check_pathルート/パスは、ログイン要求をキャッチするためにファイアウォールによって使用されます。
このルートのアクションは実際にはアクセスされません。ログインフォームが投稿するルート/ URLであり、リクエストはファイアウォールのプロバイダーサービスで処理する必要があります。
_check_path
_ルートのアクションが実行されている場合、ファイアウォールに何らかの問題があります(要求はファイアウォールによって処理されません)。
here FOSUserBundleのcheck_pathは_SecurityController::checkAction
_にルーティングされ、RuntimeException
をスローするだけです。
Check_pathの構成は、_app/config/security.yml
_の下の_security.firewalls.<firewallname>.form_login.check_path
_にあります。
それは_/login_check
_のようなパターンか、あなたの場合のようにルート名、つまり_just2_frontend_logincheck
_のいずれかですが、根本的なアクションはありません。
_security:
providers:
your_provider_name: your_provider_service # authentication provider
# ...
firewalls: # Required
your_firewall_name:
# ...
provider: your_provider_name
form_login:
check_path: /login_check # submit the login form here
# in your case a route name:
# just2_frontend_logincheck
_
内部では、symfonyはサービス_your_provider_service
_のauthenticate()
メソッドを呼び出して、提供されたクレデンシャルを確認します。
次を使用して、プロバイダーサービスとして使用されるクラスを見つけることができます。
_app/console debug:container --show-private your_provider_service
_