2017-06-19 18 views
1

ログインしたユーザーのIDを自分のロガーに含めたいとします。 私はmonolog.processorを追加して、レコードの「余分」部分にユーザーIDを追加し、IDを表示するカスタム形式の文字列を追加しました。テスト環境のTokenStorageからのトークンがありません

私の開発環境では、(ほとんど)期待通りに動作しますが、テスト環境では全く動作しません。TokenStorageは常にnullgetToken()に返します。

devまたはtestに特定のsecurity設定はありません。 configsの最大の違いは次のとおりです。

framework: 
    test: ~ 
    session: 
    storage_id: session.storage.mock_file 
    profiler: 
    collect: false 

これは私のdevconfigの設定に追加しましたが、症状を再現できませんでした。私はsymfonyを実際にテストしていると思うようにするだけで再現できます。

正直言って、私はこれをどこからデバッグするのか分からない。

この現象の原因は何ですか?
どのように私はこれをデバッグすることができますので、私は答えに得ることができる任意のアイデア?

答えて

-1

トークンを取得するには、symfonyファイアウォールの内側にいる必要があります。

ファイアウォールのいずれかがURIと一致しない場合、symfonyのセキュリティは起動されず、トークンもありません。

パブリックエリアの場合は、匿名ユーザーにroot '/ *'を許可し、残りのURI(またはアクション)にはACLを使用します。 http://symfony.com/doc/current/security.html

+0

まあ、はい、私はそれを理解する:匿名ユーザーがIS_AUTHENTICATED_ANONYMOUSLY

# app/config/security.yml security: firewalls: main: pattern: ^/ anonymous: ~ 

ドキュメント役割を持つことになります。私の質問では、「私の開発環境では、これは(主に)期待通りに動作します」と述べています。 –

+0

設定ファイルに問題がないことが確かであれば。 AppKernelの開発で使用するバンドルを確認してください。すべての環境でsymfonyのキャッシュをクリアし、クロムプライベートモードを使って新しいクッキーでテストしようとします。 – albert

関連する問題