gist/src/Gist/Security/AuthenticationEntryPoint.php
Simon Vieille 51d736cb1a Controller: refactoring ($app access)
"GistService" renamed as "Gist"
Authentication
2015-11-23 13:19:13 +01:00

42 lines
1.2 KiB
PHP

<?php
namespace Gist\Security;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\Security\Core\Exception\AuthenticationException;
use Symfony\Component\HttpFoundation\RedirectResponse;
use Symfony\Component\Routing\Generator\UrlGenerator;
use Symfony\Component\Security\Http\EntryPoint\AuthenticationEntryPointInterface;
/**
* Class AuthenticationEntryPoint
* @author Simon Vieille <simon@deblan.fr>
*/
class AuthenticationEntryPoint implements AuthenticationEntryPointInterface
{
protected $urlGenerator;
public function __construct(UrlGenerator $urlGenerator)
{
$this->urlGenerator = $urlGenerator;
}
public function start(Request $request, AuthenticationException $authException = null)
{
if ($request->isXmlHttpRequest()) {
$response = new Response(json_encode([]), 401);
$response->headers->set('Content-Type', 'application/json');
return $response;
}
if ($authException->getMessage() !== 'Full authentication is required to access this resource.') {
$params = ['error' => 1];
} else {
$params = [];
}
return new RedirectResponse($this->urlGenerator->generate('_login', $params));
}
}