Symfony 2.7中的多个提供者

时间:2016-12-12 11:19:30

标签: symfony symfony-2.7

我在我的项目中使用多个用户提供程序。

我的security.yml看起来像这样:

security:
  ...
  firewalls:
    usertype1:
       pattern: ^/root/usertype1_area
       provider: type1_provider
    usertype2
       pattern: ^/root
       provider: type2_provider
  ...

一切正常,我无法以正确的模式登录错误的用户类型,除非我注意到如果我在其中一个提供商中抛出异常,请说type1_provider,并尝试使用/root/login路径(仅应使用type2_provider)登录,Symfony正在type1_provider以及type2_provider,我得到一个例外。

当我向/root/usertype1_area/login投掷时type2_provider同样如此。

这对我来说是一个问题,因为我希望能够在type1_provider关闭时访问type2登录。

任何猜测?这是正常行为吗?

编辑: 正如亚历山大·基尔所指出的那样,在我的问题中我不清楚我想要做什么

我的一个提供商依赖于3d派对服务,我希望它在此服务停止时抛出,但我仍然希望能够访问另一个登录,这不应该依赖于提供者投掷。有没有办法实现这个目标?

1 个答案:

答案 0 :(得分:0)

您可以在提供商中使用“supportsClass”方法。如果当前用户类不支持加载的提供程序,则返回false。请参阅Symfony \ Component \ Security \ Core \ User \ UserProviderInterface