私は自分のプロジェクトで複数のユーザプロバイダを使用しています。Symfony 2.7の複数のプロバイダ
私のsecurity.ymlは次のようになります。
security:
...
firewalls:
usertype1:
pattern: ^/root/usertype1_area
provider: type1_provider
usertype2
pattern: ^/root
provider: type2_provider
...
すべてが正常に動作していると私は私は1つに例外をスローする場合ことに気づいたことを除いて、右のパターンで間違ったユーザータイプでログインすることはできませんtype1_provider
と言って、パス(これはtype2_provider
のみを使用する)でログインしようとすると、symfonyはtype1_provider
とtype2_provider
を経由していて、例外が発生します。
type2_provider
にスローすると、同じことが/root/usertype1_area/login
にも当てはまります。
type1_provider
がシャットダウンしたときにtype2ログインにアクセスできるようにしたいので、これは問題です。
推測できますか?これは正常な動作ですか?
はEDIT:アレクサンダーKeil社で指摘したように、私が私のプロバイダの
1つの3Dパーティのサービスに依存しているがやろうとしたものを私の質問では明確ではありませんでした、と私はしたいですこのサービスがダウンしているときにスローしますが、スローしているプロバイダに依存していない他のログインにもアクセスできるようにしたいと考えています。私はこれを達成する方法はありますか?
ありがとうございました。私はすでに両方のプロバイダでUserProviderInterfaceを正しく実装しましたが、私の質問は、symfonyがsecurity.ymlで明示的に別のものが提供されているときにプロバイダを使用する必要があるのはなぜですか? – Logar
あなたの質問が例外を得た理由でした。 supportsClassの実装では、これは避けるべきです。なぜsymfonyがすべてのプロバイダを経由しているのか分かりません。 – Rawburner
ご迷惑をおかけして申し訳ございませんが、私のプロバイダの1つがダウンした場合、例外は意図的です。私はいくつかの質問を編集します。 – Logar