我正在使用 JMSSecurityExtra 包来保护我的控制器中的方法。但是有什么方法可以保护整个控制器@Secure
吗?
问问题
2135 次
2 回答
6
这可以按照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()
{
// ...
}
}
于 2012-08-17T06:54:56.343 回答
1
此注解只能应用于方法。
你可以这样做(它是一个正则表达式):
jms_security_extra:
method_access_control:
'AcmeDemoBundle:AdminController:.*Action': 'hasRole("ROLE_ADMIN")'
阅读文档:http: //jmsyst.com/bundles/JMSSecurityExtraBundle/master/method_security_authorization
于 2012-08-17T06:31:46.227 回答