如果我尝试将用户从用户“ A”更改为用户“ B”,则可以,但是如果我已经模拟用户“ B”的同时尝试更改为用户“ C”,则该attemptSwitchUser方法将抛出以下例外:
You are already switched to "B" user.
500 Internal Server Error - LogicException
Run Code Online (Sandbox Code Playgroud)
这是因为此方法检查当前用户名(B)是否等于我们要模拟的用户名(C)
$token = $this->securityContext->getToken();
$originalToken = $this->getOriginalToken($token);
if (false !== $originalToken) {
if ($token->getUsername() === $request->get($this->usernameParameter)) {
return $token;
} else {
throw new \LogicException(sprintf('You are already switched to "%s" user.', $token->getUsername()));
}
}
Run Code Online (Sandbox Code Playgroud)
但是显然不可能永远不会这样,所以我不知道这是否是Symfony代码中的错误,或者我是否还缺少其他东西。
这真的是一个错误吗?是否可以在不注释掉这段代码的情况下实现此功能?
| 归档时间: |
|
| 查看次数: |
725 次 |
| 最近记录: |