在我的应用程序中,我可以在后台更改用户权限和角色。
当用户已登录并且我删除了用户的一个角色时,用户仍然可以访问他实际上没有权限访问的内容,因为他缺少该角色。更改只有在用户重新验证自己的注销/登录时才会生效。
因此,我的问题是,我可以访问已登录用户(不是我自己)的会话吗?我知道我可以访问并销毁自己的会话,这将强制我重新登录。但我想获取任何已登录用户的会话。这可能吗?我找不到任何相关资源。
我使用symfony2.1和fosuserbundle的PdoSessionStorage。
在我的应用程序中,我可以在后台更改用户权限和角色。
当用户已登录并且我删除了用户的一个角色时,用户仍然可以访问他实际上没有权限访问的内容,因为他缺少该角色。更改只有在用户重新验证自己的注销/登录时才会生效。
因此,我的问题是,我可以访问已登录用户(不是我自己)的会话吗?我知道我可以访问并销毁自己的会话,这将强制我重新登录。但我想获取任何已登录用户的会话。这可能吗?我找不到任何相关资源。
我使用symfony2.1和fosuserbundle的PdoSessionStorage。
Symfony\Component\Security\Core\User\EquatableInterface
接口。isEqualTo()
方法返回 false
,则用户将被重新验证。在这种情况下,使用该方法仅比较那些更改后应强制重新验证的属性 - 在您的情况下是角色。isEqualTo()
方法。其余部分由Symfony处理。 - Elnur Abdurrakhimov你可以通过以下类似于我的方法来解决这个问题:
EquatableInterface
只是重新加载用户对象——而不强制用户重新登录。 - Elnur AbdurrakhimovSymfony\Component\Security\Core\Authentication\Token::setUser()
方法中我所能看到的就是在第 112 行调用了 setAuthenticated(false)
吗? - JamesHalsall