Symfony 2.1 - $this->get('security.context')->isGranted('ROLE_ADMIN') retourne false, même si Profiler dit que j'ai ce rôle

J'ai un Contrôleur de l'action (le Contrôleur a $this->securityContext ensemble de $this->get('security.context') via JMSDiExtraBundle):

$user = $this->securityContext->getToken()->getUser();
$groupRepo = $this->getDoctrine()->getRepository('KekRozsakFrontBundle:Group');

if ($this->securityContext->isGranted('ROLE_ADMIN') === false) {
    $myGroups = $groupRepo->findByLeader($user);
} else {
    $myGroups = $groupRepo->findAll();
}

Lorsque je me connecte à la dev de l'environnement et de vérifier le profiler, je peux voir que j'ai le ROLE_ADMIN rôle accordé, mais j'ai toujours la liste filtrée de Groupes.

J'ai mis un peu de débogage de code dans mon Contrôleur, et de Symfony RoleVoter.php. La représentation de chaîne de Jeton dans mon Contrôleur ($this->securityContext->getToken()) et celui de RoleVoter.php sont les mêmes, mais quand j'utilise $token->getRoles(), je reçois deux différents tableaux.

Mes Utilisateurs et les Rôles sont stockées dans la base de données par l'Utilisateur et le Rôle des entités. Est-ce un bug que j'ai trouvé ou je fais quelque chose de mal?

OriginalL'auteur GergelyPolonkai | 2012-08-21