Example #1
0
 public function loginAction()
 {
     $messages = null;
     $form = new AuthForm();
     $form->get('submit')->setvalue('Login');
     $request = $this->getRequest();
     if ($request->isPost()) {
         $authFormFilters = new Auth();
         $form->setInputFilter($authFormFilters->getInputFilter());
         $form->setData($request->getPost());
         if ($form->isValid()) {
             $data = $form->getData();
             $sm = $this->getServiceLocator();
             $dbAdapter = $sm->get('Zend\\Db\\Adapter\\Adapter');
             $config = $this->getServiceLocator()->get('Config');
             $staticSalt = $config['static_salt'];
             $authAdapter = new AuthAdapter($dbAdapter, 'users', 'usr_name', 'usr_password', "MD5(CONCAT('{$staticSalt}', ?, usr_password_salt)) AND usr_active = 1");
             $authAdapter->setIdentity($data['usr_name'])->setCredential($data['usr_password']);
             $auth = new AuthenticationService();
             // or prepare in the globa.config.php and get it from there. Better to be in a module, so we can replace in another module.
             // $auth = $this->getServiceLocator()->get('Zend\Authentication\AuthenticationService');
             // $sm->setService('Zend\Authentication\AuthenticationService', $auth); // You can set the service here but will be loaded only if this action called.
             $result = $auth->authenticate($authAdapter);
             //                echo '<pre>';
             //                print_r($result);
             //                echo '</pre>';
             switch ($result->getCode()) {
                 case Result::FAILURE_IDENTITY_NOT_FOUND:
                     // do stuff for nonexistent identity
                     break;
                 case Result::FAILURE_CREDENTIAL_INVALID:
                     // do stuff for invalid credential
                     break;
                 case Result::SUCCESS:
                     $storage = $auth->getStorage();
                     $storage->write($authAdapter->getResultRowObject(null, 'usr_password'));
                     $time = 1209600;
                     // 14 days 1209600/3600 = 336 hours => 336/24 = 14 days
                     //						if ($data['rememberme']) $storage->getSession()->getManager()->rememberMe($time); // no way to get the session
                     //                                if ($data['rememberme']) {
                     //                                        $sessionManager = new \Zend\Session\SessionManager();
                     //                                        $sessionManager->rememberMe($time);
                     //                                }
                     break;
                 default:
                     // do stuff for other failure
                     break;
             }
             foreach ($result->getMessages() as $message) {
                 $messages .= "{$message}\n";
             }
         } else {
             echo '<h1> The form is NOT valid </h1>';
         }
     }
     //        echo '<pre>';
     //        print_r($_SESSION);
     //        echo '</pre>';
     return new ViewModel(array('form' => $form, 'messages' => $messages));
 }
Example #2
0
 public function authenticate(array $credentials)
 {
     $username = $credentials['username'];
     $password = $credentials['password'];
     $dbAdapter = $this->serviceManager->get('Zend\\Db\\Adapter\\Adapter');
     $dbTableAuthAdapter = new DbTableAuthAdapter($dbAdapter, 'users', 'username', 'password', 'MD5(?)');
     $dbTableAuthAdapter->setIdentity($username);
     $dbTableAuthAdapter->setCredential($password);
     $authService = new AuthenticationService();
     $authService->setAdapter($dbTableAuthAdapter);
     //$authService->setStorage($this->getServiceManager()->get('IdAuth\Storage'));
     $authResult = $authService->authenticate();
     $result = new ProviderResult();
     $result->setAuthCode($authResult->getCode());
     $result->setMessages($authResult->getMessages());
     $result->setValid($authResult->isValid());
     $result->setName('IdAuth\\Providers\\DbTable');
     $config = $this->serviceManager->get('Config');
     $options = $config['idAuth']['providerOptions']['DbTable'];
     $result->setOptions($options);
     if ($authResult->isValid()) {
         $result->setIdentity($this->queryIdentity($username));
     }
     return $result;
 }
Example #3
0
 public function authenticate()
 {
     // connection
     $dbAdapter = new DbAdapter(array('driverClass' => 'Doctrine\\DBAL\\Driver\\PDOMySql\\Driver', 'dbname' => 'RioVerdeShopping'));
     // set identification
     $authAdapter = new AuthAdapter($dbAdapter);
     $authAdapter->setTableName($this->entity)->setIdentityColumn($this->identidade)->setCredentialColumn($this->credencial);
     $authAdapter->setIdentity($this->login)->setCredential($this->senha);
     //authenticate
     $result = $authAdapter->authenticate();
     switch ($result->getCode()) {
         case Result::FAILURE_IDENTITY_NOT_FOUND:
             $msg = "Login inexistente!";
             break;
         case Result::FAILURE_CREDENTIAL_INVALID:
             $msg = "Senha inválida!";
             break;
         case Result::SUCCESS:
             $registro = $result->getIdentity();
             $msg = "Seja bem vindo(a) " . $registro['nome'];
             break;
         default:
             $msg = "Falha na tentativa de autenticação!";
             break;
     }
     return $msg;
 }
Example #4
0
 public function authenticate()
 {
     $authAdapter = new AuthAdapter($this->adapter);
     $authAdapter->setTableName('administrators')->setIdentityColumn('username')->setCredentialColumn('password');
     $authAdapter->setIdentity($this->adapterUsername)->setCredential($this->adapterPassword);
     $authService = $this->authConnect->authenticate($authAdapter);
     if ($authService->isValid()) {
         $this->authConnect->getStorage()->write($authAdapter->getResultRowObject());
         return array('status' => 'success', 'code' => '200', 'msg' => $authService->getMessages());
     } else {
         return array('status' => 'failure', 'code' => '301', 'msg' => $authService->getMessages());
         /*
         switch ($authService->getCode()) 
         {
         	case Result::FAILURE_CREDENTIAL_INVALID:
         		break;
         		
         	case Result::FAILURE_IDENTITY_NOT_FOUND:
         		break;
         			
         	default:
         		break;
         }
         */
     }
 }
 public function loginAction()
 {
     $redirect = 'dashboard';
     if ($this->auth->hasIdentity()) {
         return $this->redirect()->toRoute($redirect);
     }
     $request = $this->getRequest();
     if ($request->isPost()) {
         $this->authForm->setData($request->getPost());
         if ($this->authForm->isValid()) {
             $authAdapter = new AuthAdapter($this->getServiceLocator()->get('Zend\\Db\\Adapter\\Adapter'));
             $authAdapter->setTableName('admins')->setIdentityColumn('email')->setCredentialColumn('password')->setIdentity($request->getPost('email'))->setCredential($request->getPost('password'))->setCredentialTreatment('md5(?)');
             $Site_Id = 1;
             $authAdapter->getDbSelect()->where('site_id=' . $Site_Id);
             $result = $this->auth->authenticate($authAdapter);
             if ($result->isValid()) {
                 if ($request->getPost('remember_me') == 1) {
                     $storage = $this->getServiceLocator()->get('Application\\Model\\MyAuthStorage');
                     $storage->setRememberMe(1);
                 }
                 $this->flashmessenger()->addMessage('You are looged in successfully');
                 return $this->redirect()->toRoute($redirect);
             } else {
                 $this->flashmessenger()->addErrorMessage('Invalid username or password, try again.');
                 return $this->redirect()->toRoute('home');
             }
         }
     }
     $viewModel = new ViewModel(array('form' => $this->authForm));
     $viewModel->setTerminal(true);
     return $viewModel;
 }
Example #6
0
 public function getAdapter()
 {
     $adapter = new AuthAdapter($this->db, 'credentials_password', 'credentials_password.email', 'credentials_password.password');
     $adapter->getDbSelect()->join('accounts', 'accounts.id = credentials_password.account');
     $adapter->setIdentity($this->email);
     $adapter->setCredential($this->getHashedPassword());
     return $adapter;
 }
Example #7
0
 public function indexAction()
 {
     $viewModel = new ViewModel();
     $request = $this->getRequest();
     if (!$request->isPost()) {
         $this->layout('layout/login');
         return $viewModel;
     }
     $user = $this->identity();
     $messages = null;
     $auth = new AuthenticationService();
     if ($auth->hasIdentity()) {
         return $this->redirect()->toRoute('home');
     }
     $request = $this->getRequest();
     if ($request->isPost()) {
         $sm = $this->getServiceLocator();
         $dbAdapter = $sm->get('Zend\\Db\\Adapter\\Adapter');
         $authAdapter = new AuthAdapter($dbAdapter, 'users', 'username', 'password', 'MD5(?) AND block = 1');
         $authAdapter->setIdentity($request->getPost('username'))->setCredential($request->getPost('password'));
         if (trim($request->getPost('username')) == "" || trim($request->getPost('password')) == "") {
             return $this->redirect()->toRoute('auth');
         }
         // or prepare in the globa.config.php and get it from there. Better to be in a module, so we can replace in another module.
         // $auth = $this->getServiceLocator()->get('Zend\Authentication\AuthenticationService');
         // $sm->setService('Zend\Authentication\AuthenticationService', $auth); // You can set the service here but will be loaded only if this action called.
         $result = $auth->authenticate($authAdapter);
         switch ($result->getCode()) {
             case Result::FAILURE_IDENTITY_NOT_FOUND:
                 // do stuff for nonexistent identity
                 break;
             case Result::FAILURE_CREDENTIAL_INVALID:
                 // do stuff for invalid credential
                 break;
             case Result::SUCCESS:
                 $storage = $auth->getStorage();
                 $storage->write($authAdapter->getResultRowObject(null, 'password'));
                 $time = 28800;
                 // 14 days 1209600/3600 = 336 hours => 336/24 = 14 days
                 //						if ($data['rememberme']) $storage->getSession()->getManager()->rememberMe($time); // no way to get the session
                 if ($request->getPost('username')) {
                     $sessionManager = new \Zend\Session\SessionManager();
                     $sessionManager->rememberMe($time);
                 }
                 return $this->redirect()->toRoute('home');
                 break;
             default:
                 // do stuff for other failure
                 break;
         }
         foreach ($result->getMessages() as $message) {
             $messages .= "{$message}\n";
         }
     }
     $this->layout('layout/login');
     return $viewModel;
 }
Example #8
0
 public function indexAction()
 {
     $this->dbAdapter = $this->getServiceLocator()->get('Zend\\Db\\Adapter');
     $auth = $this->auth;
     $id = $this->params()->fromRoute('id', 0);
     $cod = $this->params()->fromRoute('validar', 0);
     if ($this->getRequest()->isPost()) {
         $usuario = $this->getRequest()->getPost();
         $id = $usuario['id'];
         $codigo = $usuario['codigo'];
         $busqueda = new Usuario($this->dbAdapter);
         $usuario1 = $busqueda->SearchValidarUsuario($id, $codigo);
         if (count($usuario1) == 1) {
             $usuarioupdate = array('us' => $usuario['username'], 'Nombre' => $usuario['nombre'], 'direccion' => $usuario['direccion'], 'verificado' => 'si');
             $busqueda->actualizar($usuarioupdate, $id);
             $authAdapter = new AuthAdapter($this->dbAdapter, 'usuario', 'us', 'contrasena');
             /* 
              Podemos hacer lo mismo de esta manera:
              $authAdapter = new AuthAdapter($dbAdapter);
              $authAdapter
                  ->setTableName('users')
                  ->setIdentityColumn('username')
                  ->setCredentialColumn('password');
             */
             /*
             En el caso de que la contraseña en la db este cifrada
             tenemos que utilizar el mismo algoritmo de cifrado
             */
             //Establecemos como datos a autenticar los que nos llegan del formulario
             $authAdapter->setIdentity($usuario['username'])->setCredential($usuario1[0]['contrasena']);
             //Le decimos al servicio de autenticación que el adaptador
             $auth->setAdapter($authAdapter);
             //Le decimos al servicio de autenticación que lleve a cabo la identificacion
             $result = $auth->authenticate();
             //Si el resultado del login es falso, es decir no son correctas las credenciales
             if ($authAdapter->getResultRowObject() == false) {
                 //Crea un mensaje flash y redirige
                 $mensaje = "Credenciales Incorrectas. ";
             } else {
                 // Le decimos al servicio que guarde en una sesión
                 // el resultado del login cuando es correcto
                 $auth->getStorage()->write($authAdapter->getResultRowObject());
                 //Nos redirige a una pagina interior
                 return $this->redirect()->toUrl($this->getRequest()->getBaseUrl() . '/usuario/cpanel');
             }
         }
     } else {
         $busqueda = new Usuario($this->dbAdapter);
         $usuario = $busqueda->SearchValidarUsuario($id, $cod);
         $username = @$usuario[0]['us'];
         $verificado = @$usuario[0]['verificado'];
         $email = @$usuario[0]['email'];
     }
     $vista = new ViewModel(array('id' => @$usuario[0]['id_usuario'], 'codigo' => @$usuario[0]['cod'], 'verificado' => @$verificado, 'email' => @$email, 'mensaje' => @$mensaje, 'username' => @$username));
     $this->layout('layout/layout');
     return $vista;
 }
 public function loginAction()
 {
     $auth = $this->auth;
     $identi = $auth->getStorage()->read();
     if ($identi != false && $identi != null) {
         return $this->redirect()->toUrl($this->getRequest()->getBaseUrl() . '/clientes/clientes/listar');
     }
     //DbAdapter
     $this->dbAdapter = $this->getServiceLocator()->get('Zend\\Db\\Adapter\\Adapter');
     //Creamos el formulario de login
     $form = new LoginForm("form");
     //Si nos llegan datos por post
     if ($this->getRequest()->isPost()) {
         /* Creamos la autenticación a la que le pasamos:
                1. La conexión a la base de datos
                2. La tabla de la base de datos
                3. El campo de la bd que hará de username
                4. El campo de la bd que hará de contraseña
            */
         $authAdapter = new AuthAdapter($this->dbAdapter, 'administrador', 'usuario', 'pass');
         /* 
          Podemos hacer lo mismo de esta manera:
          $authAdapter = new AuthAdapter($dbAdapter);
          $authAdapter
              ->setTableName('users')
              ->setIdentityColumn('username')
              ->setCredentialColumn('password');
         */
         /*
         En el caso de que la contraseña en la db este cifrada
         tenemos que utilizar el mismo algoritmo de cifrado
         */
         $pass = $this->request->getPost("password");
         $securePass = md5($pass);
         //Establecemos como datos a autenticar los que nos llegan del formulario
         $authAdapter->setIdentity($this->getRequest()->getPost("email"))->setCredential($securePass);
         //Le decimos al servicio de autenticación que el adaptador
         $auth->setAdapter($authAdapter);
         //Le decimos al servicio de autenticación que lleve a cabo la identificacion
         $result = $auth->authenticate();
         //Si el resultado del login es falso, es decir no son correctas las credenciales
         if ($authAdapter->getResultRowObject() == false) {
             //Crea un mensaje flash y redirige
             $this->flashMessenger()->addMessage("Credenciales incorrectas, intentalo de nuevo");
             return $this->redirect()->toUrl($this->getRequest()->getBaseUrl() . '/clientes/clientes/login');
         } else {
             // Le decimos al servicio que guarde en una sesión
             // el resultado del login cuando es correcto
             $auth->getStorage()->write($authAdapter->getResultRowObject());
             //Nos redirige a una pagina interior
             return $this->redirect()->toUrl($this->getRequest()->getBaseUrl() . '/clientes/clientes/listar');
         }
     }
     return new ViewModel(array("form" => $form));
 }
Example #10
0
 public function loginAction()
 {
     $auth = new AuthenticationService();
     if ($auth->hasIdentity()) {
         return $this->redirect()->toRoute('home');
     }
     // process the form
     $form = new LoginForm();
     $request = $this->getRequest();
     if ($this->getRequest()->isPost()) {
         $form->setData($request->getPost());
         if ($form->isValid()) {
             $data = $form->getData();
             // check if the user exists
             $sm = $this->getServiceLocator();
             $mapper = $sm->get('User\\Model\\UserMapper');
             $params = array('where' => 'username = "******"');
             $users = $mapper->select($params);
             if ($users) {
                 $user = $users[0];
                 /**
                  * If the account is not active, prompt the user to activate
                  * the account
                  */
                 if (!$user->getActive()) {
                     return $this->redirect()->toRoute('registration', array('action' => 'confirm', 'id' => $user->getId()));
                 }
                 // authenticate the user
                 $dbAdapter = $sm->get('Zend\\Db\\Adapter\\Adapter');
                 $adapter = new AuthAdapter($dbAdapter, 'user', 'username', 'password_hash');
                 $adapter->setIdentity($data['credential']);
                 $adapter->setCredential(hash('sha256', $user->getPassword_salt() . $data['password']));
                 $result = $auth->authenticate($adapter);
                 if ($result->isValid()) {
                     // store session information in database
                     $mapper = $sm->get('User\\Model\\SessionMapper');
                     $session = new Session(array('user_id' => $user->getId(), 'ip_address' => $_SERVER['REMOTE_ADDR'], 'login_timestamp' => date('Y-m-d H:i:s')));
                     $mapper->save($session);
                     // store user information in session variable
                     $container = new Container('user');
                     $container->user = $user->get_array();
                     return $this->redirect()->toRoute('home');
                 } else {
                     foreach ($result->getMessages() as $message) {
                         print "{$message}\n";
                     }
                 }
             } else {
                 print "Invalid username/email";
             }
         }
     }
     return new ViewModel(array('form' => $form));
 }
 public function loginAction()
 {
     $user = $this->identity();
     $form = new LoginForm();
     $messages = null;
     $request = $this->getRequest();
     if ($request->isPost()) {
         $form->setInputFilter(new LoginFilter($this->getServiceLocator()));
         $form->setData($request->getPost());
         if ($form->isValid()) {
             $data = $form->getData();
             $sm = $this->getServiceLocator();
             $dbAdapter = $sm->get('Zend\\Db\\Adapter\\Adapter');
             $authAdapter = new AuthAdapter($dbAdapter, 'user', 'email', 'password', "MD5(?)");
             $authAdapter->setIdentity($data['email'])->setCredential($data['password']);
             $auth = new AuthenticationService();
             $result = $auth->authenticate($authAdapter);
             switch ($result->getCode()) {
                 case Result::FAILURE_IDENTITY_NOT_FOUND:
                     // do stuff for nonexistent identity
                     break;
                 case Result::FAILURE_CREDENTIAL_INVALID:
                     // do stuff for invalid credential
                     break;
                 case Result::SUCCESS:
                     $storage = $auth->getStorage();
                     $storage->write($authAdapter->getResultRowObject(null, 'password'));
                     $user = $auth->getIdentity();
                     switch ($user->role_id) {
                         case 1:
                             return $this->redirect()->toRoute('admin');
                             break;
                         case 2:
                             return $this->redirect()->toRoute('teacher');
                             break;
                         case 3:
                             return $this->redirect()->toRoute('student');
                             break;
                         default:
                             return $this->redirect()->toRoute('home');
                             break;
                     }
                     break;
                 default:
                     // do stuff for other failure
                     break;
             }
             foreach ($result->getMessages() as $message) {
                 $messages .= "{$message}\n";
             }
         }
     }
     return new ViewModel(array('form' => $form, 'messages' => $messages));
 }
 public function awakeSignIn()
 {
     $this->auth = new AuthenticationService();
     $sm = $this->getApplicationServiceLocator();
     $sm->setAllowOverride(true);
     $dbAdapter = $sm->get('Zend\\Db\\Adapter\\Adapter');
     $authAdapter = new AuthAdapter($dbAdapter, 'user', 'email', 'password');
     $authAdapter->setIdentity('*****@*****.**');
     $authAdapter->setCredential(md5('123'));
     $this->auth->authenticate($authAdapter);
     $this->assertTrue($this->auth->hasIdentity());
 }
Example #13
0
 public function loginAction()
 {
     $messages = null;
     $form = new AuthForm();
     $form->get('submit')->setValue('Login');
     $request = $this->getRequest();
     if ($request->isPost()) {
         $authFormFilters = new Auth();
         $form->setInputFilter($authFormFilters->getInputFilter());
         $form->setData($request->getPost());
         if ($form->isValid()) {
             $data = $form->getData();
             $sm = $this->getServiceLocator();
             $dbAdapter = $sm->get('Zend\\Db\\Adapter\\Adapter');
             $config = $this->getServiceLocator()->get('Config');
             $staticSalt = $config['static_salt'];
             $authAdapter = new AuthAdapter($dbAdapter, 'users', 'usr_name', 'usr_password', "MD5 (CONCAT('{$staticSalt}', ?, usr_password_salt)) AND usr_active = 1");
             $authAdapter->setIdentity($data['usr_name'])->setCredential($data['usr_password']);
             $auth = new AuthenticationService();
             $result = $auth->authenticate($authAdapter);
             switch ($result->getCode()) {
                 case Result::FAILURE_IDENTITY_NOT_FOUND:
                     // do stuff for nonexistent identity
                     break;
                 case Result::FAILURE_CREDENTIAL_INVALID:
                     // do stuff for invalid credential
                     break;
                 case Result::SUCCESS:
                     $storage = $auth->getStorage();
                     $storage->write($authAdapter->getResultRowObject(null, 'usr_password'));
                     /*$time = 1209600; // 14 days 1209600/3600 = 336 hours => 336/24 = 14 days
                     //						if ($data['rememberme']) $storage->getSession()->getManager()->rememberMe($time); // no way to get the session
                                                 if ($data['rememberme']) {
                                                         $sessionManager = new \Zend\Session\SessionManager();
                                                         $sessionManager->rememberMe($time);
                                                 }*/
                     break;
                 default:
                     // do stuff for other failure
                     break;
             }
             foreach ($result->getMessages() as $message) {
                 $messages .= "{$message}\n";
             }
             //echo '<pre>';
             //print_r($_SESSION);
             //echo '</pre>';
         } else {
             //echo 'Form is not valid!';
         }
     }
     return new viewModel(array('form' => $form, 'messages' => $messages));
 }
Example #14
0
 public function login(PasswordModel $password, $dbAdapter)
 {
     $authAdapter = new AuthAdapter($dbAdapter);
     $authAdapter->setTableName('password')->setIdentityColumn('staff_id')->setCredentialColumn('password');
     $authAdapter->setIdentity($password->staffId)->setCredential($password->password);
     $result = $this->auth->authenticate($authAdapter);
     if ($result->isValid()) {
         $storage = $this->auth->getStorage();
         $storage->write($authAdapter->getResultRowObject());
     } else {
         throw new \Exception('パスワードが間違いました。');
     }
 }
Example #15
0
 public function auth(User $user)
 {
     $auth = new AuthenticationService();
     $authAdapter = new DbTable($this->dbAdapter);
     $authAdapter->setTableName('user')->setIdentityColumn('username')->setCredentialColumn('upassword');
     $authAdapter->setIdentity($user->getUsername())->setCredential($user->getUpassword());
     $result = $auth->authenticate($authAdapter);
     if ($result->isValid()) {
         $storage = $auth->getStorage();
         $storage->write($authAdapter->getResultRowObject(array('userID', 'username', 'schoolID')));
         return true;
     } else {
         print_r($result->getMessages());
     }
 }
 public function testSigninWithWrongCredentials()
 {
     $auth = new AuthenticationService();
     $sm = $this->getApplicationServiceLocator();
     $sm->setAllowOverride(true);
     $dbAdapter = $sm->get('Zend\\Db\\Adapter\\Adapter');
     $messages = null;
     $authAdapter = new AuthAdapter($dbAdapter, 'user', 'email', 'password');
     $authAdapter->setIdentity('*****@*****.**');
     $authAdapter->setCredential(md5('456'));
     $this->result = $auth->authenticate($authAdapter);
     foreach ($this->result->getMessages() as $message) {
         $messages .= "{$message}";
     }
     $this->assertEquals($messages, 'Supplied credential is invalid.');
 }
Example #17
0
    /**
     * Test to see same usernames with different passwords can authenticate when
     * a flag is set
     *
     * @group   ZF-7289
     */
    public function testEqualUsernamesDifferentPasswordShouldAuthenticateWhenFlagIsSet()
    {
        $sqlInsert = 'INSERT INTO users (username, password, real_name) '
                   . 'VALUES ("my_username", "my_otherpass", "Test user 2")';
        $this->_db->query($sqlInsert, DbAdapter::QUERY_MODE_EXECUTE);

        // test if user 1 can authenticate
        $this->_adapter->setIdentity('my_username')
                       ->setCredential('my_password')
                       ->setAmbiguityIdentity(true);
        $result = $this->_adapter->authenticate();
        $this->assertFalse(in_array('More than one record matches the supplied identity.',
                                    $result->getMessages()));
        $this->assertTrue($result->isValid());
        $this->assertEquals('my_username', $result->getIdentity());

        $this->_adapter = null;
        $this->_setupAuthAdapter();

        // test if user 2 can authenticate
        $this->_adapter->setIdentity('my_username')
                       ->setCredential('my_otherpass')
                       ->setAmbiguityIdentity(true);
        $result2 = $this->_adapter->authenticate();
        $this->assertFalse(in_array('More than one record matches the supplied identity.',
                                    $result->getMessages()));
        $this->assertTrue($result2->isValid());
        $this->assertEquals('my_username', $result2->getIdentity());
    }
Example #18
0
 /**
  * Performs an authentication attempt
  *
  * @return \Zend\Authentication\Result
  * @throws \Zend\Authentication\Adapter\Exception\ExceptionInterface
  *                                                                   If authentication cannot be performed
  */
 public function authenticate()
 {
     /* Anti Injection de login */
     $login1 = Security\AntiInjection::antiSqlInjection1($this->getIdentity());
     $login2 = Security\AntiInjection::antiSqlInjection2($login1);
     $identity = Security\AntiInjection::antiSqlInjection3($login2);
     /* Anti Injection de senha */
     $senha1 = Security\AntiInjection::antiSqlInjection1($this->getCredential());
     $senha2 = Security\AntiInjection::antiSqlInjection2($senha1);
     $senha3 = Security\AntiInjection::antiSqlInjection3($senha2);
     /* Criptografa a senha */
     $crypt = new Security\Crypt();
     $credential = $crypt->encrypt($senha3);
     //Define os dados para processar o login
     $this->setIdentity($identity)->setCredential($credential);
     //Faz inner join dos dados do perfil no SELECT do Auth_Adapter
     $select = $this->getDbSelect();
     $select->where("ind_status = 'A'");
     //Efetua o login
     $result = parent::authenticate();
     //Verifica se o login foi efetuado com sucesso
     if ($result->isValid()) {
         //Recupera o objeto do usuário, sem a senha
         $info = $this->getResultRowObject($this->returnColumns, $this->credentialColumn);
         $storage = new SessionStorage();
         $storage->write($info);
         if ($result->getCode()) {
             return new ResultValidation(ResultValidation::SUCCESS, (array) $info);
         } else {
             return new ResultValidation(ResultValidation::FAILURE, null);
         }
     } else {
         return new ResultValidation(ResultValidation::FAILURE, null);
     }
 }
Example #19
0
 public function getServiceConfig()
 {
     return array('factories' => array('log' => function ($sm) {
         $log = new Logger();
         $writer = new FirePhpWriter(new FirePhpBridge(new \FirePHP()));
         $log->addWriter($writer);
         return $log;
     }, 'Application\\Storage\\Login' => function ($sm) {
         return new \Application\Storage\Login('nhpress');
     }, 'Zend\\Session\\SessionManager' => function ($sm) {
         $config = $sm->get('config');
         if (isset($config['session'])) {
             $session = $config['session'];
             $sessionConfig = null;
             if (isset($session['config'])) {
                 $class = isset($session['config']['class']) ? $session['config']['class'] : 'Zend\\Session\\Config\\SessionConfig';
                 $options = isset($session['config']['options']) ? $session['config']['options'] : array();
                 $sessionConfig = new $class();
                 $sessionConfig->setOptions($options);
             }
             $sessionStorage = null;
             if (isset($session['storage'])) {
                 $class = $session['storage'];
                 $sessionStorage = new $class();
             }
             $sessionSaveHandler = null;
             if (isset($session['save_handler'])) {
                 $sessionSaveHandler = $sm->get($session['save_handler']);
             }
             $sessionManager = new SessionManager($sessionConfig, $sessionStorage, $sessionSaveHandler);
         } else {
             $sessionManager = new SessionManager();
         }
         Container::setDefaultManager($sessionManager);
         return $sessionManager;
     }, 'AuthService' => function ($sm) {
         $dbAdapter = $sm->get('Zend\\Db\\Adapter\\Adapter');
         $dbTableAuthAdapter = new DbTableAuthAdapter($dbAdapter);
         $dbTableAuthAdapter->setTableName('correspondent');
         $dbTableAuthAdapter->setIdentityColumn('username');
         $dbTableAuthAdapter->setCredentialColumn('password');
         $authService = new AuthenticationService();
         $authService->setAdapter($dbTableAuthAdapter);
         $authService->setStorage($sm->get('Application\\Storage\\Login'));
         return $authService;
     }));
 }
 /**
  * Metodo para validar acceso al portal
  * @return \Zend\View\Model\ViewModel
  */
 public function ingresoAction()
 {
     if ($this->getRequest()->isPost()) {
         $auth = new AuthenticationService();
         $validate = $this->getRequest()->getPost();
         $authAdapter = new AuthAdapter($this->adapter(), 'usuario', 'usuario_correo', 'usuario_password');
         $authAdapter->setIdentity($validate['correo']);
         $authAdapter->setCredential(md5($validate['password']));
         $resultado = $auth->authenticate($authAdapter);
         switch ($resultado->getCode()) {
             case Result::FAILURE_IDENTITY_NOT_FOUND:
                 $this->message = "Usuario y/o contraseña incorrectos";
                 $this->flashMessenger()->addMessage($this->message);
                 return $this->redirect()->toUrl($this->getRequest()->getBaseUrl() . '/login');
             case Result::FAILURE_CREDENTIAL_INVALID:
                 $this->message = "Usuario y/o contraseña incorrectos";
                 $this->flashMessenger()->addMessage($this->message);
                 return $this->redirect()->toUrl($this->getRequest()->getBaseUrl() . '/login');
             case Result::SUCCESS:
                 $this->flashMessenger()->clearMessages();
                 $store = $auth->getStorage();
                 $store->write($authAdapter->getResultRowObject(null, 'usuario_password'));
                 $sessionConfig = new StandardConfig();
                 $sessionConfig->setRememberMeSeconds(20)->setCookieLifetime(30)->setCookieSecure(true)->setGcMaxlifetime(60)->setGcDivisor(60);
                 $sesionMa = new SessionManager($sessionConfig);
                 $sesionMa->rememberMe(30);
                 $container = new Container('cbol');
                 $container->setExpirationSeconds(1800);
                 $sesionMa->start();
                 $container->idSession = $auth->getIdentity()->perfil_id;
                 $permisos = $this->getPermisos($auth->getIdentity()->usuario_id);
                 $container->permisosUser = $permisos;
                 $indexProfile = \Login\IndexAllProfile::listIndexAllProfiles($auth->getIdentity()->perfil_id);
                 if ($indexProfile == 'vias') {
                     $container->reportesVias = $this->getReportesViales();
                 }
                 if ($indexProfile == 'admin') {
                     $container->sugerencias = $this->getSugerenciasAction();
                 }
                 $container->setDefaultManager($sesionMa);
                 return $this->redirect()->toUrl($this->getRequest()->getBaseUrl() . "/{$indexProfile}");
             default:
                 echo 'Mensaje por defecto';
                 break;
         }
     }
 }
Example #21
0
 public function loginAction()
 {
     $user = $this->identity();
     $form = new AuthForm();
     $form->get('submit')->setValue('Войти');
     $messages = null;
     $request = $this->getRequest();
     if ($request->isPost()) {
         $authFormFilters = new Auth();
         $form->setInputFilter($authFormFilters->getInputFilter());
         $form->setData($request->getPost());
         if ($form->isValid()) {
             $data = $form->getData();
             $sm = $this->getServiceLocator();
             $dbAdapter = $sm->get('Zend\\Db\\Adapter\\Adapter');
             $config = $this->getServiceLocator()->get('Config');
             $staticSalt = $config['static_salt'];
             $authAdapter = new AuthAdapter($dbAdapter, 'users', 'usr_email', 'usr_password', "MD5(CONCAT('{$staticSalt}', ?, usr_password_salt)) AND usr_active = 1");
             $authAdapter->setIdentity($data['usr_email'])->setCredential($data['usr_password']);
             $auth = new AuthenticationService();
             $result = $auth->authenticate($authAdapter);
             switch ($result->getCode()) {
                 case Result::FAILURE_IDENTITY_NOT_FOUND:
                     break;
                 case Result::FAILURE_CREDENTIAL_INVALID:
                     break;
                 case Result::SUCCESS:
                     $storage = $auth->getStorage();
                     $storage->write($authAdapter->getResultRowObject(null, 'usr_password'));
                     $time = 1209600;
                     // 14 days 1209600/3600 = 336 hours => 336/24 = 14 days
                     if ($data['rememberme']) {
                         $sessionManager = new \Zend\Session\SessionManager();
                         $sessionManager->rememberMe($time);
                     }
                     break;
                 default:
                     break;
             }
             foreach ($result->getMessages() as $message) {
                 $messages .= "{$message}\n";
             }
         }
     }
     return new ViewModel(array('form' => $form, 'messages' => $messages));
 }
Example #22
0
 /**
  * Faz a autenticação dos usuários
  * 
  * @param array $params
  * @return array
  */
 public function authenticate($params)
 {
     if (!isset($params['username']) || !isset($params['password'])) {
         throw new \Exception("Parâmetros inválidos");
     }
     $password = md5($params['password']);
     $auth = new AuthenticationService();
     $authAdapter = new AuthAdapter($this->dbAdapter);
     $authAdapter->setTableName('users')->setIdentityColumn('username')->setCredentialColumn('password')->setIdentity($params['username'])->setCredential($password);
     $result = $auth->authenticate($authAdapter);
     if (!$result->isValid()) {
         throw new \Exception("Login ou senha inválidos");
     }
     //salva o user na sessão
     $session = $this->getServiceManager()->get('Session');
     $session->offsetSet('user', $authAdapter->getResultRowObject());
     return true;
 }
Example #23
0
 public function __construct(DbAdapter $zendDb, $tableName = null, $identityColumn = null, $credentialColumn = null, $credentialTreatment = null, $dateColumn = null, $firstLogin = true)
 {
     parent::__construct($zendDb, $tableName, $identityColumn, $credentialColumn, $credentialTreatement);
     if ($dateColumn !== null) {
         $this->setDateColumn($dateColumn);
     }
     if (isset($firstLogin)) {
         $this->setFirstLogin($firstLogin);
     }
 }
 public function loginAction()
 {
     $authStorage = new AuthenticationStorage(self::NAMESPACE_ZENDSTORE_FRONT);
     $authService = new AuthenticationService($authStorage);
     if ($authService->hasIdentity()) {
         echo 'You have logined';
         exit;
     }
     $form = new UserForm();
     $request = $this->getRequest();
     if ($request->isPost()) {
         $user = new User();
         $form->setInputFilter($user->getInputFilter());
         $form->setData($request->post());
         if ($form->isValid()) {
             $data = $form->getData();
             // Authentication
             $sm = $this->getServiceLocator();
             $db = $sm->get('db-adapter');
             //$authAdapter = new AuthenticationAdapter($db, 'user', 'email', 'password', 'MD5(?)');
             $authAdapter = new AuthenticationAdapter($db, 'user', 'email', 'password', 'MD5(CONCAT(?, password_salt))');
             $authAdapter->setIdentity($data['email']);
             $authAdapter->setCredential($data['password']);
             $result = $authService->authenticate($authAdapter);
             if ($result->isValid()) {
                 return $this->redirect()->toRoute('user-front-user');
             } else {
                 var_dump($result->getMessages());
                 exit;
             }
         } else {
             echo '<h1>ERROR: Form data is invalid.</h1>';
             echo '<pre>';
             print_r($form->getMessages());
             exit;
         }
     }
     $viewVars = array('form' => $form);
     $viewModel = $this->getViewModel();
     $viewModel->setVariables($viewVars);
     return $viewModel;
 }
Example #25
0
 public function indexAction()
 {
     $headTitle = $this->getServiceLocator()->get('viewHelperManager')->get('headTitle');
     $translator = $this->getServiceLocator()->get('translator');
     $headTitle->append($translator->translate('System Login'));
     $form = new LoginForm();
     $vars = array();
     $auth = new AuthenticationService();
     if (!$auth->hasIdentity()) {
         $vars['form'] = $form;
         $request = $this->getRequest();
         if ($request->isPost()) {
             $post_data = $request->getPost();
             $form->setData($post_data);
             // Validate the form
             if ($form->isValid()) {
                 // Authentication ...
                 $dbAdapter = $this->getServiceLocator()->get('Zend\\Db\\Adapter\\Adapter');
                 // Configure the instance with constructor parameters...
                 $authAdapter = new AuthAdapter($dbAdapter, 'account', 'username', 'password', 'MD5(?)');
                 // Set the input credential values (e.g., from a login form)
                 $data = $form->getData();
                 $authAdapter->setIdentity($data['username'])->setCredential($data['password']);
                 $auth = new AuthenticationService();
                 $result = $auth->authenticate($authAdapter);
                 $vars['result'] = $result;
                 if (!$result->isValid()) {
                     // Authentication failed;
                 } else {
                     // Authentication succeeded; the identity ($username) is stored
                     // in the session
                     // $result->getIdentity() === $auth->getIdentity()
                     // $result->getIdentity() === $username
                     return $this->redirect()->toRoute('auth');
                 }
             }
         }
     }
     $view_page = new ViewModel($vars);
     return $view_page;
 }
Example #26
0
 public function indexAction()
 {
     $this->layout('layout/login');
     $auth = new AuthenticationService();
     $viewmodel = new ViewModel();
     $form = new LoginForm();
     $request = $this->getRequest();
     $filters = new LoginFormFilter();
     $form->get('submit')->setValue('Login');
     $message = "";
     //Message
     if ($auth->hasIdentity()) {
         return $this->redirect()->toRoute('backend_index');
     }
     if ($request->isPost()) {
         $form->setInputFilter($filters);
         $form->setData($request->getPost());
         if ($form->isValid()) {
             $data = $form->getData();
             $sm = $this->getServiceLocator();
             $dbAdapter = $sm->get('Zend\\Db\\Adapter\\Adapter');
             $authAdapter = new AuthAdapter($dbAdapter, 'user', 'username', 'password', 'sha1(?)');
             $authAdapter->setIdentity($data['username'])->setCredential($data['password']);
             $result = $auth->authenticate($authAdapter);
             switch ($result->getCode()) {
                 case Result::SUCCESS:
                     $storage = $auth->getStorage();
                     $storage->write($authAdapter->getResultRowObject(null, 'password'));
                     return $this->redirect()->toRoute('backend_index');
                     break;
                 default:
                     $message = "Usuario o clave incorrecto.";
                     break;
             }
         }
     }
     $viewmodel->form = $form;
     $viewmodel->message = $message;
     return $viewmodel;
 }
 public function loginAction()
 {
     $entityManager = $this->getEntityManager();
     $form = new LoginForm($entityManager);
     $error = null;
     $request = $this->getRequest();
     if ($request->isPost()) {
         $formInputFilter = new LoginFilter($entityManager);
         $form->setInputFilter($formInputFilter->getInputFilter());
         $form->setData($request->getPost());
         if ($form->isValid()) {
             $formData = $form->getData();
             $authAdapter = new AuthAdapter($this->getServiceLocator()->get('Zend\\Db\\Adapter\\Adapter'), 'users', 'login', 'password', "MD5(?)");
             $authAdapter->setIdentity($formData["loginutilisateur"])->setCredential($formData["passwordutilisateur"]);
             $authResultat = $authAdapter->authenticate();
             if ($authResultat->isValid()) {
                 $userData = $authAdapter->getResultRowObject();
                 if ($userData->acces == '4') {
                     $error = 'Votre compte a été supprimé';
                 } elseif ($userData->acces == '3') {
                     $authService = new AuthenticationService();
                     $authService->getStorage()->write($userData);
                     // TODO Redirections selon profil utilisateur
                     switch ($userData->type) {
                         default:
                             // $this->redirect()->toUrl($this->getBaseUrl());
                             $this->redirect()->toRoute("home");
                     }
                 } else {
                     $error = 'Votre compte est désactivé';
                 }
             } else {
                 $error = 'Identifiants incorrects';
             }
         } else {
             $error = 'Identifiants incorrects';
         }
     }
     return new ViewModel(array('form' => $form, 'alertmessages' => array('error' => $error)));
 }
 public function userLogin($useremail, $password, $remember_me = 0)
 {
     $authAdapter = new AuthAdapter($this->getAdapter(), 'userlist', 'useremail', 'password', 'CONCAT(?,salt_key) and is_active=1 and is_delete=0');
     $authAdapter->setIdentity(trim($useremail));
     $authAdapter->setCredential(base64_encode(trim($password)));
     $auth = new AuthenticationService();
     $result = $authAdapter->authenticate($authAdapter);
     if ($result->isValid()) {
         if ($remember_me == 1) {
             setcookie('discoveryCRMcookieEmail', $useremail, time() + 86400 * 365, "/");
             setcookie('discoveryCRMcookiePswd', $password, time() + 86400 * 365, "/");
         } else {
             setcookie('discoveryCRMcookieEmail', $useremail, time() - 86400, "/");
             setcookie('discoveryCRMcookiePswd', $password, time() - 86400, "/");
         }
         $data = $authAdapter->getResultRowObject();
         $auth->getStorage()->write($data);
         $identity = $auth->getIdentity();
         $this->getModel()->generateOTP();
         return 1;
     } else {
         return 0;
     }
 }
Example #29
0
 public function loginAction()
 {
     $auth = $this->getAuth();
     if ($auth->hasIdentity()) {
         return $this->redirect()->toRoute('todo');
     }
     $form = new LoginForm();
     $form->get('submit')->setValue('Login');
     $request = $this->getRequest();
     if ($request->isPost()) {
         $user = new User();
         $form->setInputFilter($user->getInputFilter());
         $form->setData($request->getPost());
         if ($form->isValid()) {
             $data = $form->getData();
             $authAdapter = new AuthAdapter($this->getServiceLocator()->get('Zend\\Db\\Adapter\\Adapter'), 'user', 'email', 'password', 'MD5(?)');
             $authAdapter->setIdentity($data['email'])->setCredential($data['password']);
             $auth->authenticate($authAdapter);
             return $this->redirect()->toRoute('todo');
         } else {
         }
     }
     return array('form' => $form);
 }
Example #30
0
 /**
  *
  * @return \Zend\Authentication\Result
  * @throws Exception
  */
 public function authenticate()
 {
     $res = parent::authenticate();
     return $res;
     //        try {
     //
     //            if ($this->username == "seyfer" &&
     //                    $this->password == "sessfsf") {
     //
     //                $identity = "user";
     //                $code     = Result::SUCCESS;
     //                return new Result($code, $identity);
     //            }
     //            else {
     //                throw new \Exception("Authentication Failed");
     //            }
     //        }
     //        catch (\Exception $e) {
     //            $code     = Result::FAILURE;
     //            $identity = "guest";
     //            return new Result($code, $identity, array($e->getMessage()));
     //        }
 }