【问题标题】:Symfony 4: cannot access as ROLE_ADMINSymfony 4:无法以 ROLE_ADMIN 身份访问
【发布时间】:2019-06-11 15:24:59
【问题描述】:

我的角色列值:["ROLE_ADMIN"]

我的实体/用户:

/**
 * @ORM\Column(type="json", nullable=true)
 */
private $roles = [];

public function getRoles() : ?array { 
    $roles = $this->roles; 
    $roles[] = 'ROLE_USER';
    return array_unique($roles); 
}

$currentUser->getRoles();var_dump 中给了我这个:

array(2) { [0]=> string(10) "ROLE_ADMIN" [1]=> string(9) "ROLE_USER" }

我的 security.yaml:

access_control:
- { path: ^/admin, roles: ROLE_ADMIN }

Profiler 工具栏告诉我我已登录。

但我仍然看到消息:

Symfony\Component\HttpKernel\Exception\
AccessDeniedHttpException

但是当我将 security.yaml 更改为:

access_control:
- { path: ^/admin, roles: ROLE_USER }

然后异常消失。

我错过了什么吗?

【问题讨论】:

  • 即使我将 'ROLE_ADMIN' 添加到我的 getRoles() 中,它也无济于事
  • 您是否注销并重新登录并清除缓存?

标签: symfony


【解决方案1】:

尝试注销并登录,symfony 将角色保存在记住我的令牌中,您可以在分析器、安全选项卡中检查您当前分配的角色。很可能角色不在记住我的 cookie 中,这就是它不允许您访问的原因。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-11-18
    • 2020-02-06
    • 1970-01-01
    • 2018-11-14
    • 2021-08-03
    • 1970-01-01
    • 2023-03-20
    相关资源
    最近更新 更多