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:”?用户太大,无法转储,您特别想要什么?它确实显示了我模拟的用户的详细信息。该用户太大,无法转储,您具体在寻找什么?它确实显示了我模拟的用户的详细信息。