【发布时间】:2018-07-12 21:25:37
【问题描述】:
在用户打开另一个 URL 后,我使用 ROLE_USER 对用户进行身份验证,需要 ROLE_ADMIN 如果用户在数据库中具有该角色,我想添加此角色。
我将使用事件侦听器,但在 kernel.request 事件执行之前访问被拒绝。
【问题讨论】:
-
请详细说明一下。您的用户在访问管理页面时没有
ROLE_ADMIN,对吧? -
@JovanPerovic 是的,我将
ROLE_ADMIN设置为请求事件侦听器,但在运行事件之前我被拒绝访问 -
您的用户对象在会话中被序列化,您不能只是动态添加角色并希望它能够工作(至少,我不知道)。也许有人可以纠正我?
-
@JovanPerovic 我在事件侦听器中创建了新会话并且工作但在访问控制检查之前事件没有运行。
-
您可以添加priority attribute 来控制监听器的执行顺序。但我怀疑它会对你有多大帮助。认为你的基本设计有缺陷。如果您希望用户拥有 ROLE_ADMIN,请添加它。
标签: symfony security events symfony4