我在控制器中有不同的用户操作。我想保护它们,以便匿名用户无法访问此操作。 (他们不依赖于特殊的前缀路径)
根据: http://symfony.com/doc/current/book/security.html#securing-a-controller
我必须确保每个行动都是分开的。这不是很方便,并产生重复的代码。
是否有可能为控制器的所有操作抛出accessdenied异常?
答案 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中使用访问控制。为什么不为每个动作添加特定模式?如果没有特定的前缀,您仍然可以在那里限制完整的网址。