2013-05-21 1 views
2

나는 내 응용 프로그램에서 사용자를 가장 할 수 있도록하려면, 그래서 사용자가 "B"에 사용자 "A"에서 내 사용자를 변경하려고하면 나는 tutorial from the website이미 다른 사용자로 가장 할 때 사용자를 가장합니까? 내가하려고하면

을 따라 작동하지만, 이미 사용자 "B"를 가장하는거야 동안 사용자가 "C"로 변경은 attemptSwitchUser 방법이 excepcion 발생 :

You are already switched to "B" user. 
500 Internal Server Error - LogicException 

이 현재 사용자 이름 (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())); 
    } 
} 

하지만 분명히 이것은 결코 사실 일 수는 없으므로, 이것이 Symfony 코드의 버그인지 또는 내가 누락 된 다른 것이 있는지는 알 수 없습니다.

정말 버그입니까? 이 코드 블록을 주석 처리하지 않고이 기능을 수행 할 수 있습니까?

+0

으로 다시 전환해야 할 수도 있습니다. 잘못된 링크를 잘라내어 붙여 넣으면 "사용자 B"로 가장 할 수있는 동작으로 연결됩니다. 이미 ' 사용자 B " – DonCallisto

+0

아니오, 그 경우는 아닙니다. DonCallisto – zootropo

답변

4

Switched user cannot switch to other. 이전에 원래 사용자 (?_switch_user=_exit)

+1

아, 알겠습니다. 하지만 ... 왜 그런 일을 막을까요? 나는 어떤 정당한 이유도 생각할 수 없다. 나는 그것이 안전 때문에 있어야한다고 생각하지만 정확히 왜? – zootropo

관련 문제