查找请求是否正在尝试访问Symfony中的受保护页面



>我正在尝试在Symfony中创建一个EventListener,该监听器侦听主请求,如果请求试图访问防火墙后面的路由以在会话中设置标志。 例如,如果请求是向防火墙/admin发出的,那么事件侦听器应该在 会话。我能想到的唯一方法是注入用户和 AccessDecisionManager,并在角色设置为 IS_AUTHENTICATED_ANONYMOUSLY 时检查用户是否有权访问页面,并检查用户是否经过完全身份验证。类似于:

if (!$uthorizationChecker->isGranted('IS_AUTHENTICATED_ANONYMOUSLY') && is  $authorizationChecker->isGranted('IS_AUTHENTICATED_FULLY')) {
        // the user can't access the resources when ANONYMOUS
       // this must be a secured resource
    }

有没有更优雅的方式来实现这一目标?我缺少一种方法,可以简单地告诉您请求正在尝试或已访问受保护的页面。可能侦听某些防火墙事件也是一种选择?

https://symfony.com/doc/current/security.html

查看访问控制部分。基本上可以指定需要根据某个角色进行身份验证的路由。然后,对于所有这些路由,您只需设置标志而无需执行此检查,因为默认情况下它不会允许未经授权的用户进入

最新更新