3

AppBundle と UserBundle の 2 つのバンドルを持つ Symfony2 アプリがあります。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');
    }
}

?>
4

1 に答える 1

2

あなたが探しているのはイベントではなく、カスタム セキュリティ ボーターだと思います。

于 2013-08-28T11:06:28.553 に答える