我正在努力实现"禁止禁止的内容"策略,同时保持FOSRest注释的灵活性。在不讨论这个用例的必要性的情况下 - 我可以否认所有这些,并允许匿名用户只通过注释来访问某些方法,如
use JMS\SecurityExtraBundle\Annotation\Secure;
use FOS\RestBundle\Controller\Annotations\Get;
....
/**
* @Secure(roles="IS_AUTHENTICATED_ANONYMOUSLY")
* @Get('/testpage')
**/
并拒绝所有(除了登录,当然,使用ACL)
- { path: ^/login, roles: IS_AUTHENTICATED_ANONYMOUSLY }
- { path: ^/login_check, roles: IS_AUTHENTICATED_ANONYMOUSLY }
- { path: ^/, roles: IS_AUTHENTICATED_FULLY }
起初我真的希望
secure_all_services: true
jmssecurity配置符号,但它只能启用jms注释的整个项目解析。
我的样本不起作用,我确信JMSSecurity本身工作正常,没有ACL拒绝规则我可以通过注释拒绝单个元素。
答案 0 :(得分:0)
如果我没记错,注释语法是
/**
* @Secure(roles="ROLE_ADMIN")
**/
这只适用于方法。对于课程,您需要@PreAuthorize
注释
请参阅http://jmsyst.com/bundles/JMSSecurityExtraBundle/master/annotations