2

これはよくある問題で、ヒントはたくさんありますが、現在解決できていません。多分誰かが私を助けることができます。

私のsecurity.yml:

firewalls:
    login:
      pattern:  ^/login$
      anonymous:  ~

    secured_area:
        pattern:    ^/
        form_login: 
          login_path:  /login
          check_path:  /login_check
        logout:
            path: /logout
            target: /

access_control:
    - { path: ^/login, roles: IS_AUTHENTICATED_ANONYMOUSLY }
    - { path: ^/, roles: ROLE_USER }

そして、これらは私の設定したルートです (router:debug 出力):

home                     ANY    ANY    ANY  /
login                    ANY    ANY    ANY  /login
logout                   ANY    ANY    ANY  /logout
login_check              ANY    ANY    ANY  /login_check

安全な場所にすべてを置きたいです。しかし、まだ上記のエラーが表示されます: パス "/login_check" のコントローラーが見つかりません。構成の何が問題になっていますか?

4

2 に答える 2

1

security.yml では、uri またはルート名で check_path を定義できます。のようなルート名で試してみてください。

secured_area:
        pattern:    ^/
        form_login: 
          login_path:  /login
          check_path:  login_check
        logout:
            path: /logout
            target: /

または、次のように securityController でカスタム セキュリティ チェック パスを作成できます。

/**
 * @Route("/login_check", name="_security_check")
 */
 public function securityCheckAction()
 {

 }

check_path: _security_checkこれは、セキュリティ構成ファイルで定義できます

于 2013-06-12T20:15:58.500 に答える
0

それはクレイジーです。Symfony ではエラーはありませんでした。フロントエンドに Jquerymobile 1.3.1 を使用しており、ログインするたびにブラウザの URL がhttp://myapp.localhost/app_dev.php/login_checkを指しています。ログイン後に正しいコンテンツを取得しましたが、ソースコードを表示すると、次のエラーが表示されます: パス "/login_check" のコントローラーが見つかりません。ブラウザの更新ボタンを使用すると、古典的な symfony 2 の障害サイトが表示されます。

すべての jquerymobile js と css を削除すると、ログイン システムは期待どおりに機能します。ログインフォームを投稿からある種の ajax 送信に変更する必要があるかもしれません。

于 2013-06-13T10:12:06.987 に答える