我在控制器中有不同的用户操作。我想保护它们,以便匿名用户无法访问此操作。(他们不依赖于特殊的前缀路径)
根据: http ://symfony.com/doc/current/book/security.html#securing-a-controller
我必须确保每个动作分开。这不是很方便,并且会产生重复的代码。
是否有可能为控制器的所有操作抛出 accessdenied 异常?
我在控制器中有不同的用户操作。我想保护它们,以便匿名用户无法访问此操作。(他们不依赖于特殊的前缀路径)
根据: http ://symfony.com/doc/current/book/security.html#securing-a-controller
我必须确保每个动作分开。这不是很方便,并且会产生重复的代码。
是否有可能为控制器的所有操作抛出 accessdenied 异常?
您需要在 security.yml 中保护它
就在该access_control
部分所在的位置:
这就是我的一个项目的样子。
access_control:
- { path: ^/oauth, role: ROLE_USER }
现在在控制器中,在这种情况下,对于第一行,我只需在类的顶部添加以下注释:
/**
* Class OAuthController
* @package MyNamespace\MyBundle\Controller
* @Route("/oauth")
*/
class OAuthController extends Controller {
}
并且整个控制器是安全的。
我不认为这是可能的。如果你真的有很多动作,你可以编写自己的注释,每次执行动作时都会运行。
你真的应该考虑在你的 security.yml 中使用访问控制。为什么不为那里的每个动作添加特定的模式?如果没有特定的前缀,您仍然可以在那里限制完整的 url。