1

我在 symfony2 应用程序中使用安全组件。

我有一个案例,我需要为来自某个 IP 的流量分配 ROLE_ADMIN。我正在考虑使用匿名身份验证并稍后通过服务为匿名用户分配“ROLE_ADMIN”角色。我觉得这行不通,因为从安全上下文中我可以获得一个用户,但这只是字符串“anon”而不是完整的用户实体对象。无法分配角色。

也许有人可以指出我正确的方向?

4

1 回答 1

0

我有一个解决方案,最初我想将角色 ROLE_ADMIN 分配给匿名用户,这是不可能的。我创建了一个自定义安全侦听器 + 工厂,它可以工作,但您可以简单地从服务或控制器为安全上下文分配一个新令牌。

    $token = new \Symfony\Component\Security\Core\Authentication\Token\AnonymousToken('admin', 'admin', array('ROLE_ADMIN'));
    $this->get('security.context')->setToken($token);
于 2012-07-01T06:55:17.787 回答