Events 内核请求侦听器中403 http状态的Symfony异常

Events 内核请求侦听器中403 http状态的Symfony异常,events,symfony,listener,Events,Symfony,Listener,我有一个Symfony2应用程序,有两个捆绑包——AppBundle和UserBundle。我在UserBundle中创建了kernel.request事件侦听器。如何在onKernelRequest方法中引发http状态代码为403(禁止)的AccessDeniedException异常?我将检查用户对控制器/操作的访问,如果用户有限制,我将抛出此异常 <?php namespace Company\AppBundle\EventListener; use Symfony\Compo

我有一个Symfony2应用程序,有两个捆绑包——AppBundle和UserBundle。我在UserBundle中创建了kernel.request事件侦听器。如何在onKernelRequest方法中引发http状态代码为403(禁止)的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');
    }
}

?>


我认为您要查找的不是事件,而是。

谷歌和文档有助于。。。Gah,刚刚花了一段时间,exending
EntityUserProvider
根据登录用户的属性执行一些操作。它成功了(有点怪,我只能在需要403时触发401)。这看起来更值钱!