私はSymfonyの異なるユーザーを偽装しようとしていますが、別の例であるSymfony impersonation - separate firewalls and separate user providersとは異なります。私の場合は、プロバイダが異なるだけでなくホストです。symfonyが異なるホスト間で偽装する
firewalls:
admin:
pattern: ^/
host: "%host_admin%"
provider: admin
[...]
switch_user:
role: ROLE_ADMIN
provider: client
#host: "%host_public%" <-- tried this.. does not work
context: cmb_context
client:
pattern: ^/
host: "%host_public%"
provider: client
[...]
switch_user:
role: ROLE_ADMIN
provider: client
context: cmb_context
だから、私はユーザーを偽装しようとするこのセットアップでは、管理者側で認証できない、それは正確にピックアップされています、クライアント管理サイトで、そしてもちろんのまま。もちろん、クライアントに移動するときは、認証セッションは存在しません。
私はシステムのホストを入れて、どこに運がないのかを "偽装"する場所を知ろうとしました。
私はhttp://symfony.com/doc/current/security/impersonating_user.html#eventsに記載されているリスナーに落ちなければならないかもしれませんが、それを行う方法の詳細は見つかりませんでした。
アイデア?前もって感謝します。
ありがとうございます@モハメド答えます。私が持っている問題は、ファイアウォールでエンティティデータを取得することができないため、ページ下部(他のパブリックエンティティの1つ)のsymfony dev-barに正しいユーザ名がロードされていることがわかります。私は管理ホストにいて、私はクライアントホストにクライアントとしてログに記録したいと思っています)... – rrubiorr81