symfony验证是否授予路由/评估返回redirectToRoute语句

时间:2015-01-13 00:26:48

标签: php security symfony redirect try-catch

我有一个symfony2控制器,我想在其中执行以下操作:

try {
    return $this->redirect($request->headers->get('referer'));
}
catch (Exception $e) {
    return $this->redirectToRoute('home');
}

它不起作用。我们的想法是,鉴于此控制器中发生的情况,用户的权限可能会发生变化。所以我想知道他是否仍然可以访问当前路由,如果是,则重定向到当前路由,如果没有,则重定向到主页。

我该怎么做?

非常感谢!

1 个答案:

答案 0 :(得分:1)

我没有看到这样做的好方法。问题是,您需要询问整个安全组件,它使用requestlistners拒绝访问。不幸的是,Accesstoken只生成一次,因此如果再次询问请求列表者,它将不会使用新的用户权限。

最好的想法,可能是进行重定向,然后捕获Exception(带有exceptionListener)它真正发生的地方,然后再重定向。