首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >如何在Symfony2中抛出403异常?

如何在Symfony2中抛出403异常?
EN

Stack Overflow用户
提问于 2014-02-21 18:46:15
回答 2查看 31.8K关注 0票数 29

我正在检查请求URI中是否有特定的令牌,如果没有令牌或令牌错误,则抛出Symfony\Component\Security\Core\Exception\AccessDeniedException

代码语言:javascript
代码运行次数:0
运行
复制
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本机异常吗?但是我怎么知道要传递一个403错误代码呢?

Symfony2是否可能有一个特定的403异常,而不是简单地重定向到登录?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-02-21 23:52:05

抛出Symfony\Component\HttpKernel\Exception\AccessDeniedHttpException

这将绕过安全系统,并向您提供403响应,该响应将被twig异常侦听器拾取。

票数 57
EN

Stack Overflow用户

发布于 2016-02-11 23:04:53

从Symfony 2.6开始,您可以使用以下控制器快捷方式来触发良好的异常:

代码语言:javascript
代码运行次数:0
运行
复制
return $this->denyAccessUnlessGranted('ROLE_EDIT', $item, 'You cannot edit this item.');
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21932229

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档