【发布时间】:2015-01-16 15:17:20
【问题描述】:
我编写了一个系统,其中后台 PHP 进程(使用 RabbitMQBundle 编写)处理来自消息队列的消息。工作进程更新用户帐户。这可能包括用户角色的更改。
问题是用户在登录时不会注意到其角色的任何变化。新角色只有在注销并再次登录后才会应用。从安全角度来看,这是不可取的。一旦管理员在后端系统中取消该用户的权限,用户就应该放弃任何角色。
问题是:如何使用新角色更新特定用户的会话? 或者如果不可能,如何使会话无效?
请注意,在后台进程中,我们没有可以使用的活动security.context 或request。因此,这样的代码不起作用:
$this->get('security.context')->setToken(null);
$this->get('request')->getSession()->invalidate();
【问题讨论】: