/**
  * @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'));
 }