【发布时间】:2012-08-17 02:59:39
【问题描述】:
我正在使用 JMSSecurityExtra 包来保护我的控制器中的方法。
但是有什么方法可以让我用@Secure 保护整个控制器?
【问题讨论】:
我正在使用 JMSSecurityExtra 包来保护我的控制器中的方法。
但是有什么方法可以让我用@Secure 保护整个控制器?
【问题讨论】:
这可以按照Documentaion来完成
https://github.com/schmittjoh/JMSSecurityExtraBundle/issues/50
提示:如果您想用相同的方式保护控制器的所有操作 规则,您也可以在类本身上指定@PreAuthorize。警告 但是,此规则仅适用于在 班级。
use JMS\SecurityExtraBundle\Annotation\PreAuthorize;
/** @PreAuthorize("hasRole('A') or (hasRole('B') and hasRole('C'))") */
class MyService
{
public function secureMethod()
{
// ...
}
}
【讨论】:
此注解只能应用于方法。
你可以这样做(它是一个正则表达式):
jms_security_extra:
method_access_control:
'AcmeDemoBundle:AdminController:.*Action': 'hasRole("ROLE_ADMIN")'
阅读文档:http://jmsyst.com/bundles/JMSSecurityExtraBundle/master/method_security_authorization
【讨论】: