好吧,要做到这一点,“正确”的方式需要设置您自己的身份验证提供程序。坦率地说,尽管您会对安全系统有很好的了解,但这是相当痛苦的。
食谱可以提供帮助: http ://symfony.com/doc/current/cookbook/security/custom_authentication_provider.html
考虑从克隆开始:Symfony\Bundle\SecurityBundle\DependencyInjection\Security\Factory\FormLoginFactory。或者至少用它作为一个开始的例子。
我自己没有尝试过,但我认为您可以通过设置参数来为您提供自己的身份验证类:
<parameter key="security.authentication.provider.dao.class">Symfony\Component\Security\Core\Authentication\Provider\DaoAuthenticationProvider</parameter>
如果它有效,那么制作一个完整的提供商会更容易。
最后,您可以像我第一次那样做,然后发布到常规控制器并自己处理。您必须硬编码防火墙名称,否则它很简单。其他几个线程,其中包含有关如何执行此操作的详细信息。每个版本的框架工作的细节往往会有所变化,因此查看框架类可能是您最好的选择。我的代码来自 S2.0,所以我不会发布它。