我有几个防火墙,比如admin,main,我想在管理防火墙上添加一个事件监听器,而不是主要的,因为有些检查只能用于管理防火墙,我知道我们可以这样做就像这篇帖子所说的How to Create a custom Authentication Provider
这篇文章是关于用户登录时的身份验证,但我的情况是用户已成功进行身份验证,并且需要对管理防火墙后面的所有操作执行某些操作,而不是针对某个操作。所以这个事件监听器应该在用户登录后发生,并且只发生在某个防火墙上,例如admin。有什么方法可以吗?
答案 0 :(得分:2)
您可以创建自己的侦听器并添加以下代码:
$token = $this->securityContext->getToken();
$providerKey = $token->getProviderKey(); // secured_area / firewall name
providerkey是防火墙的名称。 有关详细信息:https://reformatcode.com/browse
答案 1 :(得分:1)
我和你最近遇到过类似的问题。由于只有一个Symfony的内部FirewallListener,您必须在监听器中过滤防火墙名称。在您的情况下,请跳过admin
以外的所有内容。