我有一个 Symfony2 应用程序,有两个包 - AppBundle 和 UserBundle。我在 UserBundle 中创建了 kernel.request 事件监听器。如何在 onKernelRequest 方法中抛出带有 http 状态代码 403(Forbidden) 的 AccessDeniedException 异常?我将检查用户对控制器/操作的访问权限,如果用户有限制,那么我将抛出此异常。
<?php
namespace Company\AppBundle\EventListener;
use Symfony\Component\HttpKernel\Event\GetResponseEvent;
use Symfony\Component\HttpKernel\HttpKernel;
use Symfony\Component\Security\Core\Exception\AccessDeniedException;
use Doctrine\ORM\EntityManager;
class CompanyRequestListener
{
protected $em;
public function __construct(EntityManager $em)
{
$this->em = $em;
}
public function onKernelRequest(GetResponseEvent $event)
{
throw new AccessDeniedException('Access Denied');
}
}
?>