【发布时间】: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