3

アノテーションを使用してコントローラーを保護しようとしています。

namespace Vinny\StreamBundle\Controller;

use Symfony\Bundle\FrameworkBundle\Controller\Controller;
use JMS\SecurityExtraBundle\Annotation\Secure;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route;


class HomeController extends Controller
{

    /**
     * @Route("/home", name="home") 
     * @Secure(roles="ROLE_USER")
     */
    public function indexAction()
    {
     ...

しかし、コントローラーを実際に保護することはできないようです。これが無視されるインスタンスはありますか?

4

2 に答える 2

12

ほぼ完全に無関係なことに、私の問題の問題は私の設定やコントローラーの何にも起因していませんでしたが、Symfony2.0からSymfony2.1への切り替えからの移行の取り違えでした。JMSSecurityExtraBundle(および他の人)の注釈を黙って壊していたJMSDiExtraBundleの登録に失敗していました。

私のAppKernel.phpには、次のものがありませんでした。

public function registerBundles()
{
    $bundles = array(
    ...
    new JMS\DiExtraBundle\JMSDiExtraBundle($this),
    ...

これで、すべてが正常に機能します。

于 2013-02-03T16:10:04.047 に答える
0

ROLE_ADMINまたはを試してからROLE_SUPER、セキュリティで保護されているかどうかを確認する必要があります。 ROLE_USERはすべてのユーザーに適用されるdeafultロールであるため、uは許可されます

@Secure(roles="ROLE_SUPER")
于 2013-02-03T00:22:23.313 に答える