1

Symfony2 の JMSSecurityExtraBundle を使用して、独自の式メソッドを作成し、PreAuthorize アノテーションを使用してコントローラーにバインドしようとしました。

理由はわかりませんが、メソッドが起動されることはなく、セキュリティ バンドルは PreAuthorize アノテーションを評価しようとして、「トークンには必要な役割がありません。」で終了します。ロールを検証しようとしていて、PreAuthorize 式を解決しようとしていないようです。

私がやろうとしていることの例:

<?php

namespace Acme\HelperBundle\Security;

use Symfony\Component\DependencyInjection\ContainerInterface;
use JMS\DiExtraBundle\Annotation as DI;

/** @DI\Service */
class RequestAccessEvaluator
{
    private $container;

    /**
     * @DI\InjectParams({
     *     "container" = @DI\Inject("service_container"),
     * })
     */
    public function __construct(ContainerInterface $container)
    {
        $this->container = $container;
    }

    /** @DI\SecurityFunction("isAllowed") */
    public function isAllowed()
    {
        return true;
    }
}

私のコントローラー:

   /**
     * 
     * @PreAuthorize("isAllowed()")
     * @Route("/bla/{id}")
     * @Method({"POST"})
     * @return json
     */
    public function postBlaAction(Request $request, $id)
    {
4

1 に答える 1