php - 如何在 Symfony2 中抛出 403 异常?

标签 php symfony error-handling http-status-code-403

我正在检查我的请求 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/

相关文章:

vb.net - VB.NET验证表单以检查是否存在空字段或错误

php - 避免在 php 中重复数据

php - Doctrine Migrations 中的回滚问题

Symfony2 : Automatically map query string in Controller parameter

symfony - Doctrine ODM 中的 AND 和 OR 表达式

python - 尝试将二进制转换为十进制: ended with a weird int error?

php - 如何将 PHP 整型变量中的整型值传递给 JS?

php - 组合递归迭代器结果 : children with parents

php - Composer 不会通过存储库> 类型> 路径自动加载文件

error-handling - fn foo() -> 结果 <()> 抛出 "expected 2 type arguments"