1

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

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

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

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

4

2 回答 2

1

您需要在 security.yml 中保护它

就在该access_control部分所在的位置:

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

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

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

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

并且整个控制器是安全的。

于 2014-10-13T17:30:53.673 回答
0

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

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

于 2014-10-13T17:27:16.257 回答