我正在检查我的请求 URI 中是否有特定 token ,如果没有 token 或 token 错误,则抛出 Symfony\Component\Security\Core\Exception\AccessDeniedException
。
if(!isset($token) && $token != 'whatever') {
throw new AccessDeniedException('No token given or token is wrong.');
}
但是当我使用此AccessDeniedException
时,Symfony2 只是重定向到登录页面。相反,我想要一个专用的 403 错误页面(我已经创建了 app/Resources/TwigBundle/views/Exceptions/error403.html.twig
文件)。
为了实现这一点,我必须改变什么?我必须使用 PHP native 异常吗?但是我怎么知道要传递 403 错误代码呢?
Symfony2 是否可能有一个特定的 403 异常,它不会简单地重定向到登录?
最佳答案
抛出 Symfony\Component\HttpKernel\Exception\AccessDeniedHttpException
。
这将绕过安全系统并给你一个 403 响应,而该响应又会被 twig 异常监听器拾取。
关于php - 如何在 Symfony2 中抛出 403 异常?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21932229/