使用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)
{