Symfony2 ROLE_ADMIN用于来自某些IP的请求

时间:2012-06-30 13:11:47

标签: security symfony

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

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

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

1 个答案:

答案 0 :(得分:0)

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

    $token = new \Symfony\Component\Security\Core\Authentication\Token\AnonymousToken('admin', 'admin', array('ROLE_ADMIN'));
    $this->get('security.context')->setToken($token);