我正在尝试使用注释来保护我的控制器:
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()
{
...
但我似乎无法让我的控制器实际上受到保护。是否有任何可以忽略的情况?
答案 0 :(得分:12)
在一个几乎完全不相关的说明中,我的问题不是源于我的配置或控制器中的任何问题,而是从Symfony 2.0到Symfony 2.1的交换混合。我没有注册JMSDiExtraBundle,它正在悄悄地破坏JMSSecurityExtraBundle(以及其他人的)注释。
在我的AppKernel.php中,我一直在想:
public function registerBundles()
{
$bundles = array(
...
new JMS\DiExtraBundle\JMSDiExtraBundle($this),
...
随着一切正常,再次。
答案 1 :(得分:0)
您需要尝试使用ROLE_ADMIN
或ROLE_SUPER
,然后查看其是否受到保护。
ROLE_USER
是适用于所有用户的聋人角色,因此允许使用
@Secure(roles="ROLE_SUPER")