Symfony2では、@ security.token_storageをサービスとして登録されているリスナーに渡します。私は複数のサービスのためにこれを行います。Symfony2のToken_storageにトークンがありません
場合によっては、token_storageにgetToken()メソッドがありません。私はなぜユーザーがログインし、他のサービスがそれにアクセスできるようになったのか理解できません。
私はこのように私のサービスを登録:
gedmo.listener.loggable:
class: CmdbBundle\Library\Loggable\LoggableListener
tags:
- { name: doctrine.event_subscriber, connection: default }
calls:
- [ setAnnotationReader, [ @annotation_reader ] ]
- [ setUserValue, [ @security.token_storage ] ]
アクセスなしトークンが存在しない理由を私は知りません。私のdevバーは、UsernamePasswordTokenという種類のトークンがあることを示しています。
私が意図しているのは、現在ログインしているユーザーのユーザー名を取得することです。サービスにそのことを認識させる必要があります。
setUserValueでgetTokenを呼び出していますか?そうであればタイミング問題です。リスナー自身は、セキュリティスタッフがそれを行う前に作成されます。リスナーが実際にイベントを受け取ったときにgetTokenを呼び出します。 – Cerad