userRepository = $userRepository; } public function supports(Request $request) { return $request->getPathInfo() === '/admin/login' && $request->isMethod(Request::METHOD_POST) && $request->request->has('utilisateur') && $request->request->has('mot_de_passe'); } /** * @inheritDoc */ public function getCredentials(Request $request) { return [ 'login' => $request->request->get('utilisateur'), 'password' => md5($request->request->get('mot_de_passe')), ]; } /** * @inheritDoc */ public function getUser($credentials, UserProviderInterface $userProvider) { $user = $this->userRepository->loadUserByUsername($credentials['login']); if ($user === null) { throw new AuthenticationException(sprintf('Unknown user %s', $credentials['login'])); } return $user; } /** * @inheritDoc */ public function checkCredentials($credentials, UserInterface $user) { return ( ($credentials['login'] === $user->getUsername() || $credentials['login'] === $user->getEmail()) && $credentials['password'] === $user->getPassword() ); } /** * @inheritDoc */ public function onAuthenticationFailure(Request $request, AuthenticationException $exception) { $request->getSession()->getFlashBag()->add('error', "Utilisateur et/ou mot de passe incorrect"); } /** * @inheritDoc */ public function onAuthenticationSuccess(Request $request, TokenInterface $token, $providerKey) { $actualUrl = $request->getSchemeAndHttpHost() . $request->getRequestUri(); if ( $request->request->has('_target_path') and $target_path = $request->request->get('_target_path') and $target_path !== $actualUrl and parse_url($target_path, PHP_URL_HOST) === null ) { return new RedirectResponse($target_path); } return new RedirectResponse('/member'); } /** * @inheritDoc */ public function supportsRememberMe() { return false; } /** * @inheritDoc */ public function start(Request $request, AuthenticationException $authException = null) { if ($request->server->has('LEGACY_REFERER')) { return new RedirectResponse(sprintf('/admin/login?target=%s', urlencode($request->server->get('LEGACY_REFERER')))); } return new RedirectResponse('/admin/login'); } }