Security Symfony没有模拟角色

Security Symfony没有模拟角色,security,symfony,Security,Symfony,我已成功地使用切换到用户\u switch\u user=thomas 但是,以下内容在应返回true时始终返回false: $security = $this->get('security.context'); $impersonated = $security->isGranted('ROLE_PREVIOUS_ADMIN'); die(var_dump($impersonated)); // == false 为什么我不能在安全

我已成功地使用
切换到用户\u switch\u user=thomas

但是,以下内容在应返回true时始终返回false:

        $security = $this->get('security.context');
        $impersonated = $security->isGranted('ROLE_PREVIOUS_ADMIN');
        die(var_dump($impersonated)); // == false
为什么我不能在安全上下文中获得角色\u PREVIOUS\u ADMIN

编辑 我使用以下方式登录:

?_switch_user=john@doe.com
自:

providers:
    main:
        entity:
            property: email
我的参数是默认值:

switch_user: true
我正确地切换,这不是问题所在

问题是在我模拟之后,用户没有角色\u PREVIOUS\u ADMIN

  • 您可以打印转储
    用户
    对象吗?用户名值是多少
  • config.yml
    中检查模拟参数是否确实被称为
    \u switch\u user
您可能正在打开页面而没有实际切换用户。

  • 您可以打印转储
    用户
    对象吗?用户名值是多少
  • config.yml
    中检查模拟参数是否确实被称为
    \u switch\u user

您可能在打开页面时没有实际切换用户。

很可能您没有实现for
user
类:

class User implements UserInterface, EquatableInterface, \Serializable {

    // ...

    public function isEqualTo(UserInterface $user) {
        return $this->email === $user->getEmail();
    }

    public function serialize() {
        return serialize(array(
            $this->id,
            $this->email,
        ));
    }

    public function unserialize($serialized) {
        list($this->id, $this->email) = unserialize($serialized);
    }

    // ...
}

很可能您尚未实现for
User
类:

class User implements UserInterface, EquatableInterface, \Serializable {

    // ...

    public function isEqualTo(UserInterface $user) {
        return $this->email === $user->getEmail();
    }

    public function serialize() {
        return serialize(array(
            $this->id,
            $this->email,
        ));
    }

    public function unserialize($serialized) {
        list($this->id, $this->email) = unserialize($serialized);
    }

    // ...
}

您是否在security.yml中选中了“access\u control:”?您是否在security.yml中选中了“access\u control:”?用户太大,无法转储,您特别想要什么?它确实显示了我模拟的用户的详细信息。该用户太大,无法转储,您具体在寻找什么?它确实显示了我模拟的用户的详细信息。