/** * @param Request $request * @return PartialHtmlResponse */ public function run(Request $request) { $userName = $request->getPostVal('user'); $password = $request->getPostVal('password'); $urlBuilder = $this->serviceContainer->getUrlBuilder(); $passwordVerifier = $this->serviceContainer->getPasswordVerifier(); $userSession = $this->serviceContainer->getUserSession(); $csrfHandler = $this->serviceContainer->getCsrfHandler(); if ($csrfHandler->requestIsValid($request) == false) { return new CompleteHtmlResponse($csrfHandler->getErrorMessage()); } $user = $this->getUserByName($userName); if ($user == null) { return new HttpRedirectResponse($urlBuilder->createActionUrl('login')); } if ($passwordVerifier->verifyUserPassword($user, $password)) { $userSession->loginAs($user->getId(), $user->getName()); } else { return new HttpRedirectResponse($urlBuilder->createActionUrl('login')); } return new HttpRedirectResponse($urlBuilder->createActionUrl('listUrls')); }