Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/symfony/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Symfony2:当不允许用户访问url模式时,如何在特定页面上重定向_Symfony_Authorization_Firewall_Fosuserbundle - Fatal编程技术网

Symfony2:当不允许用户访问url模式时,如何在特定页面上重定向

Symfony2:当不允许用户访问url模式时,如何在特定页面上重定向,symfony,authorization,firewall,fosuserbundle,Symfony,Authorization,Firewall,Fosuserbundle,我正试图找出如何重定向到某个没有运行有效订阅的用户的特定页面(在我的例子中是支付页面) 我知道我可以通过在我所有的行动中设置一个isgrated复选框来做到这一点,但我不喜欢这个解决方案,因为考虑到我的行动数量,这似乎是一个很大的时间浪费 我已经查看了firewall.access\u denied\u url参数,但我不想将AccessDenied链接到支付页面,因为,例如,任何没有角色\u admin的用户都被拒绝访问管理页面,并且被重定向到支付页面没有任何意义 我已经有一个投票者,可以检查

我正试图找出如何重定向到某个没有运行有效订阅的用户的特定页面(在我的例子中是支付页面)

我知道我可以通过在我所有的行动中设置一个isgrated复选框来做到这一点,但我不喜欢这个解决方案,因为考虑到我的行动数量,这似乎是一个很大的时间浪费

我已经查看了firewall.access\u denied\u url参数,但我不想将AccessDenied链接到支付页面,因为,例如,任何没有角色\u admin的用户都被拒绝访问管理页面,并且被重定向到支付页面没有任何意义

我已经有一个投票者,可以检查用户是否有效,并在这种情况下授予访问权限,但当用户试图达到某个模式时,我如何使用该投票者,并在访问被拒绝时重定向他/她

提前谢谢

您可以使用

从文件:

此捆绑包将AOP功能添加到Symfony2

如果您还没有听说过AOP,它基本上允许您将横切关注点(例如,安全检查)分离到一个专用类中,而不必在需要它的所有地方重复该代码

换句话说,这允许您在调用服务层或控制器中的某些方法之前和之后执行自定义代码。您还可以选择跳过原始方法的调用,或抛出异常


在app/config/security.yml中,在安全性下添加:

访问被拒绝\u url:/foo/error403


然后,Symfony将重定向用户无法访问的所有页面到/foo/error403页面。

为什么不能使用简单的控制器上的侦听器?我猜这个包通过侦听器完成它的工作。当然,你可以通过听众自己实现这一点。