有没有办法为特定防火墙添加事件监听器?

时间:2015-10-08 09:43:24

标签: symfony

我有几个防火墙,比如admin,main,我想在管理防火墙上添加一个事件监听器,而不是主要的,因为有些检查只能用于管理防火墙,我知道我们可以这样做就像这篇帖子所说的How to Create a custom Authentication Provider

这篇文章是关于用户登录时的身份验证,但我的情况是用户已成功进行身份验证,并且需要对管理防火墙后面的所有操作执行某些操作,而不是针对某个操作。所以这个事件监听器应该在用户登录后发生,并且只发生在某个防火墙上,例如admin。有什么方法可以吗?

2 个答案:

答案 0 :(得分:2)

您可以创建自己的侦听器并添加以下代码:

$token = $this->securityContext->getToken();
$providerKey = $token->getProviderKey(); // secured_area / firewall name

providerkey是防火墙的名称。 有关详细信息:https://reformatcode.com/browse

答案 1 :(得分:1)

我和你最近遇到过类似的问题。由于只有一个Symfony的内部FirewallListener,您必须在监听器中过滤防火墙名称。在您的情况下,请跳过admin以外的所有内容。