我在symfony2应用程序中使用安全组件。
我遇到的情况是我需要为来自某个IP的流量分配ROLE_ADMIN。我正在考虑使用匿名身份验证,并在稍后通过服务为匿名用户分配'ROLE_ADMIN'角色。我觉得这不会起作用,因为从安全上下文我可以得到一个用户,但这只是字符串“anon”而不是完整的用户实体对象。没有办法分配角色。
也许有人可以指出我正确的方向?
答案 0 :(得分:0)
我有一个解决方案,最初我想将角色ROLE_ADMIN分配给匿名用户,这是不可能的。我创建了一个自定义安全监听器+工厂,它只能从服务或控制器向安全上下文分配一个新令牌。
$token = new \Symfony\Component\Security\Core\Authentication\Token\AnonymousToken('admin', 'admin', array('ROLE_ADMIN'));
$this->get('security.context')->setToken($token);