Symfony 5:方法注释上的@IsGranted在继承的角色上不起作用

missing_分号

我(显然)搜索了类似的问题,但我都不是。

这是我的情况:

  • 我做了一个自定义角色: ROLE_SUPER_ADMIN
  • 我的实际用户是admin,他唯一的角色是ROLE_SUPER_ADMIN
  • 该角色ROLE_SUPER_ADMIN继承了ROLE_ADMIN(请参见下文)
  • 我正在尝试访问 /users/page/1
  • 我有 Access Denied by controller annotation @IsGranted(["ROLE_ADMIN", "ROLE_RESPONSIBLE"])

这是我的控制器:

//src/Controller/UserController.php

/**
 * @Route("/users")
 * @IsGranted("ROLE_USER")
 */
class UserController extends AbstractController
{
    private $security;
    private $mailer;


    public function __construct(Security $security, MailerInterface $mailer)
    {
        $this->security = $security;
        $this->mailer = $mailer;
    }

    /**
     * @Route("/page/{!page}", name="user_index", requirements={"page"="\d+"}, defaults={"page":1})
     * @IsGranted({"ROLE_ADMIN", "ROLE_RESPONSIBLE"})
     */
    public function index(Request $request, UserRepository $userRepository, int $page = 1): Response
    {
[....]
}

还有我的自定义角色层次结构

config/packages/security.yaml

security:
    role_hierarchy:
        ROLE_RESPONSIBLE: ROLE_USER
        ROLE_ADMIN:       ROLE_USER
        ROLE_SUPER_ADMIN: [ROLE_ADMIN, ROLE_ALLOWED_TO_SWITCH]

我仔细检查了每个字符,以防万一我有错字,我没有...

我认为这就像一次&&评估(用户必须获得ROLE_ADMIN ROLE_RESPONSIBLE)。

编辑:那就是问题,默认行为是&&对数组中每个角色评估,我需要使用* @Security("is_granted('ROLE_ADMIN') or is_granted('ROLE_RESPONSIBLE')")

我仅尝试使用@IsGranted("ROLE_USER"),它起作用了,但@IsGranted("ROLE_ADMIN")没有起作用,这是一个继承的角色

我(仍然)无法嵌入图片,因此请相信我的意思或在此处查看我的证明

在此先感谢您,星期一是您知道的星期一...

阿尔瑟留斯

您要求授予用户两个角色。更改层次结构以使ROLE_SUPER_ADMIN继承ROLE_RESPONSIBLE,因此您可以将其删除或将注释更改为:

/**
 * @Security("is_granted('ROLE_ADMIN') or is_granted('ROLE_RESPONSIBLE')")
 */

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在类上的Symfony2 Route注释不起作用

来自分类Dev

jQuery 脚本在 Symfony4 Twig 上不起作用

来自分类Dev

在类上的Symfony2路由注释不起作用

来自分类Dev

Symfony 2(2.3.x)注释路由不起作用

来自分类Dev

Symfony 2(2.3.x)注释路由不起作用

来自分类Dev

Symfony翻译不起作用

来自分类Dev

Symfony路由不起作用

来自分类Dev

带订单的Symfony5灯具-getOrder()不起作用

来自分类Dev

Symfony 路由还是 Symfony 注释?

来自分类Dev

Symfony2注释继承

来自分类Dev

Symfony-Twig-过滤器“ localizeddate”在DateTime上不起作用

来自分类Dev

symfony2和phpunit在Lampp上不起作用(ubuntu 15.x)

来自分类Dev

setLocale在symfony2应用程序上不起作用

来自分类Dev

Symfony Sonata管理语言不起作用

来自分类Dev

symfony功能测试webtestcase不起作用

来自分类Dev

symfony功能测试webtestcase不起作用

来自分类Dev

Symfony和Composer更新不起作用

来自分类Dev

测试symfony命令不起作用

来自分类Dev

symfony表单类型文件不起作用

来自分类Dev

Symfony学说:ManyToOne关系不起作用

来自分类Dev

Symfony的Guard start()函数不起作用

来自分类Dev

symfony liip想象水印不起作用

来自分类Dev

Symfony编码密码不起作用

来自分类Dev

Symfony2 notIn不起作用

来自分类Dev

Symfony +原则:不起作用的选择子句

来自分类Dev

Symfony .htaccess DirectoryIndex不起作用

来自分类Dev

Symfony FOSUserBundle 记住我不起作用

来自分类Dev

Symfony 3 - 翻译不起作用

来自分类Dev

表单 AJAX 提交 symfony 不起作用