symfony 验证路由是否被授予/评估 return redirectToRoute 语句

symfony verify if a route is granted / assess a return redirectToRoute statement

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

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

它不起作用。这个想法是考虑到这个控制器中发生的事情,用户的权限可能会改变。所以我想知道他是否还可以访问当前路由,如果可以,则重定向到当前路由,如果不能,则重定向到家。

我该怎么做?

非常感谢!

我看不到一个好的方法。问题是,您需要询问整个安全组件,它使用请求列表来拒绝访问。不幸的是,Accesstoken 只生成一次,所以如果你再次询问 requestlistners,它不会使用新的用户权限。

最好的办法可能是进行重定向,然后在异常发生的地方捕获异常(带有 exceptionListener ),然后进行重定向。