からloadUserByUsernameをsymfonyの2セキュリティコンポーネント:コントローラ
loadUserByUsernameサービスまたは何か他のクリーン介して、コントローラのアクションから
(セキュリティ設定に依存UserProviderInterface実装の方法)を使用する方法はありますでしょうか?
私はFOSUserBundle
感謝を使用しないでください!ネイティブEntityUserProviderとして
からloadUserByUsernameをsymfonyの2セキュリティコンポーネント:コントローラ
loadUserByUsernameサービスまたは何か他のクリーン介して、コントローラのアクションから
(セキュリティ設定に依存UserProviderInterface実装の方法)を使用する方法はありますでしょうか?
私はFOSUserBundle
感謝を使用しないでください!ネイティブEntityUserProviderとして
は、あなた自身の公共サービスであなたの方法のloadUserByUsernameを定義し、EntityUserProviderからそれを呼び出す場合、あなたはどのContainerAwareクラスからそれを使用することができ、それは可能ではない、抽象です...しかし。
AFAIK Symfony2は、登録されたユーザープロバイダに直接アクセスすることはできません。一つの汚いやり方としては、例えば
//DependencyInjection/BundleExtension.php
public function load(array $configs, ContainerBuilder $container)
{
//...
//parse security.yml
//create an array mapping each provider keys in the firewall to the providers
//set the array as global parameter using $container->setParameter('provider.mappings', $array)
}
DependencyInjection/BundleExtension.php
のload()
方法でsecurity.yml
を解析し、コントローラに、あなたはペツェ@
$mapping = $this->container->getParameter('provider.mappings');
$providerKey = $this->get('security.context')->getToken()->getProviderKey();
$user = $mapping[$providerKey]->loadUserByUsername('user_name');
ありがとう@ m2mdas、私はこれを試してあなたに連絡をとるよ! – Glutamatt
感謝を行うことができます! 実際には、ユーザー名からユーザーを取得するために、セキュリティコンポーネントの動作を使用するだけで済みます。 – Glutamatt
私は多くのプロバイダ(チェーン)を設定しました...だから私は既存のchainedproviderを維持したいと考えています – Glutamatt