Я использую JMSSecurityExtra для обеспечения безопасности в моем контоллере. Но есть ли способ защитить весь контроллер с помощью @Secure
?
Это можно сделать в соответствии с документом
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