[Security] allowed simple pre-auth to be optional if another auth mechanism already authenticated the user

This commit is contained in:
Fabien Potencier 2013-05-05 19:24:00 +02:00 committed by Jordi Boggiano
parent 01c913be4b
commit 471e5bc21a

View File

@ -19,6 +19,7 @@ use Symfony\Component\HttpKernel\Event\GetResponseEvent;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Security\Core\Authentication\SimplePreAuthenticatorInterface;
use Symfony\Component\Security\Core\Authentication\Token\TokenInterface;
use Symfony\Component\Security\Core\Authentication\Token\AnonymousToken;
use Symfony\Component\Security\Core\Exception\AuthenticationException;
use Symfony\Component\Security\Http\Authentication\AuthenticationFailureHandlerInterface;
use Symfony\Component\Security\Http\Authentication\AuthenticationSuccessHandlerInterface;
@ -71,6 +72,10 @@ class SimplePreAuthenticationListener implements ListenerInterface
$this->logger->info(sprintf('Attempting simple pre-authorization %s', $this->providerKey));
}
if (null !== $this->context->getToken() && !$this->context->getToken() instanceof AnonymousToken) {
return;
}
try {
$token = $this->simpleAuthenticator->createToken($request, $this->providerKey);
$token = $this->authenticationManager->authenticate($token);