小编mis*_*lon的帖子

Symfony 5:方法注释上的 @IsGranted 不适用于继承角色

我(显然)搜索了类似的问题,但我的一个都没有。

这是我的案例:

  • 我做了一个自定义角色: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
    {
[....]
} …
Run Code Online (Sandbox Code Playgroud)

php security annotations roles symfony

7
推荐指数
1
解决办法
1万
查看次数

标签 统计

annotations ×1

php ×1

roles ×1

security ×1

symfony ×1