在 security.yml 中,我通过定义用户必须拥有的最小角色来保护用户的路由。例如
- { 路径:^/a/clients,角色:MY_CUSTOM_ROLE }
有没有办法否定这种访问,唯一允许通过的人是那些没有这个角色的人?
我认为您可以使用 symfony 表达语言轻松做到这一点(我认为 2.4 中的新功能)。一些例子:
access_control:
- { path: ^/_internal/secure, allow_if: "'127.0.0.1' == request.getClientIp() or has_role('ROLE_ADMIN')" }
有关更多详细信息,请访问: https ://github.com/symfony/symfony/pull/8913
对于 2.3.4 版本(当前稳定版本),您需要手动创建另一个自定义角色,即 MY_CUSTOM_ROLE 的否定。