7

私はSymfony2.0のセキュリティを見ていますが、説明できない問題があります。

私のセキュリティバンドルは今のところ非常にシンプルです。

私は実際のプロバイダーを置く前にすべてを機能させるようにしています。

それで、今、私がサイトに行くとき、それは期待通りにログインフォームで私を送ります。ユーザーとパスワードを入力すると、ホームページの代わりに「/.../app_dev.php/_wdt/511509b611682」(毎回異なる番号)に送信されます。

デバッグツールバーでユーザーが認証済みとしてマークされていません。

URLの末尾を外すと、ホームページに到着します。私のユーザーは、デバッグツールバーで識別および認証されているようです。

これは開発環境でのみ到着します。製品環境では、期待どおりに機能しているようです。

ご協力いただきありがとうございます

4

3 に答える 3

15

@artworkadの回答に加えて、メインのファイアウォールのdevにファイアウォールを追加する必要があります。そうしないと、一致しません。

security:
    firewalls:
        dev:
            pattern:  ^/(_(profiler|wdt)|css|images|js)/
            security: false
        main:
            pattern: ^/
            #...
于 2013-05-31T14:10:17.047 に答える
4

開発環境を使用してログインすると、 にリダイレクトされindex_dev.php/_wdt/4e95412bc6871ます。

WDT 別名 Web デバッグ ツールバーは、次の方法でファイアウォールの範囲から削除できます。

dev:
  pattern:  ^/(_(profiler|wdt)|css|images|js)/
  security: false

実際には SecurityBundle とは関係ありませんが、とにかくここに文書化されています https://github.com/FriendsOfSymfony/FOSUserBundle/issues/368

于 2013-02-11T17:55:47.280 に答える
2

また、この行を access_control に入れることもできます:

{ path: ^/_wdt, role: IS_AUTHENTICATED_ANONYMOUSLY }
{ path: ^/_profiler, role: IS_AUTHENTICATED_ANONYMOUSLY }

しかし、アプリのルートのみに access_control を保持することを好みます。

于 2013-05-09T15:32:49.873 に答える