Linux SRV-16 6.18.44-paas #1 SMP PREEMPT_DYNAMIC Thu Aug 13 10:08:12 UTC 2026 x86_64
/
srv
/
data
/
web
/
vhosts
/
716cf56cb2.url-de-test.ws
/
htdocs
/
src
/
Security
/
/srv/data/web/vhosts/716cf56cb2.url-de-test.ws/htdocs/src/Security/AppCustomAuthenticator.php
<?php namespace App\Security; use Symfony\Component\HttpFoundation\Request; use Symfony\Component\Security\Core\Security; use Symfony\Component\HttpFoundation\Response; use Symfony\Component\HttpFoundation\RedirectResponse; use Symfony\Component\Security\Http\Util\TargetPathTrait; use Symfony\Component\HttpFoundation\Session\SessionInterface; use Symfony\Component\Routing\Generator\UrlGeneratorInterface; use Symfony\Component\Security\Http\Authenticator\Passport\Passport; use Symfony\Component\Security\Core\Authentication\Token\TokenInterface; use Symfony\Component\Security\Http\Authenticator\Passport\Badge\UserBadge; use Symfony\Component\Security\Http\Authenticator\Passport\Badge\CsrfTokenBadge; use Symfony\Component\Security\Http\Authenticator\AbstractLoginFormAuthenticator; use Symfony\Component\Security\Http\Authenticator\Passport\Credentials\PasswordCredentials; class AppCustomAuthenticator extends AbstractLoginFormAuthenticator { use TargetPathTrait; public const LOGIN_ROUTE = 'app_login'; private $urlGenerator; protected $session; public function __construct(UrlGeneratorInterface $urlGenerator, SessionInterface $session) { $this->urlGenerator = $urlGenerator; $this->session = $session; } public function authenticate(Request $request): Passport { $email = $request->request->get('email', ''); $request->getSession()->set(Security::LAST_USERNAME, $email); return new Passport( new UserBadge($email), new PasswordCredentials($request->request->get('password', '')), [ new CsrfTokenBadge('authenticate', $request->request->get('_csrf_token')), ] ); } public function onAuthenticationSuccess(Request $request, TokenInterface $token, string $firewallName): ?Response { if ($targetPath = $this->getTargetPath($request->getSession(), $firewallName)) { return new RedirectResponse($targetPath); } $user = $token->getUser(); if (in_array('ROLE_ADMIN', $user->getRoles())) { $this->session->getFlashBag()->add('success', 'Bienvenue ' . $user->getFirstname() . ' ' . $user->getLastname()); return new RedirectResponse($this->urlGenerator->generate('app_search_logement')); } $referer = $this->session->get('referer'); if ($referer) { $refererUrl = $this->urlGenerator->generate($referer[0], ['id' => $referer[1]]); return new RedirectResponse($refererUrl); } else { return new RedirectResponse($this->urlGenerator->generate('app_home')); } } protected function getLoginUrl(Request $request): string { return $this->urlGenerator->generate(self::LOGIN_ROUTE); } }