Symfony2保护整个控制器

时间:2014-10-13 17:13:11

标签: symfony symfony-security

我在控制器中有不同的用户操作。我想保护它们,以便匿名用户无法访问此操作。 (他们不依赖于特殊的前缀路径)

根据: http://symfony.com/doc/current/book/security.html#securing-a-controller

我必须确保每个行动都是分开的。这不是很方便,并产生重复的代码。

是否有可能为控制器的所有操作抛出accessdenied异常?

2 个答案:

答案 0 :(得分:1)

您需要在security.yml

中保护它

access_control部分的位置:

这是我的一个项目的样子。

access_control:
        - { path: ^/oauth, role: ROLE_USER }

现在在控制器中,在第一行的情况下,我只是在类的顶部添加以下注释:

/**
 * Class OAuthController
 * @package MyNamespace\MyBundle\Controller
 * @Route("/oauth")
 */
class OAuthController extends Controller {
}

整个控制器都是安全的。

答案 1 :(得分:0)

我不认为这是可能的。如果你真的有很多动作,你可以编写自己的注释,每次执行一个动作时都会运行。

您应该考虑在security.yml中使用访问控制。为什么不为每个动作添加特定模式?如果没有特定的前缀,您仍然可以在那里限制完整的网址。