除少数控制器外,访问拒绝所有控制器 Symfony 3

问题描述

如何拒绝访问除某些控制器之外的所有控制器? 我有角色:ROLE_SUPER_ADMIN、ROLE_ADMIN、ROLE_MANAGER。

如果我使用注释,那么一切都很好。 index 方法对 manager 可用,方法中的 ROLE_MANAGER 覆盖了 ROLE_ADMIN

/**
 * @Security("has_role('ROLE_ADMIN')")
 */
 class TestController extends Controller
{
    /**
     * @Security("has_role('ROLE_MANAGER')")
     */
    public function index(): Response
    {
        return new Response('Test');
    }
 }

如果我拒绝除管理员以外的所有人的访问权限,则控制器中的覆盖将不起作用。我在 security.yml 中的 access_control:

access_control:
    - { path: ^/login,role: IS_AUTHENTICATED_ANONYMOUSLY }
    - { path: ^/,role: ROLE_ADMIN }

access_control里面的路由我都可以写,但是list太大,不方便。并且在控制器中使用注解更方便。

我想这样做,以便在创建新控制器时,默认情况下它仅可用于 ROLE_ADMIN。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...