Пример #1
0
 public function indexAction()
 {
     $form = new LoginForm();
     $authService = $this->getServiceLocator()->get('Zend\\Authentication\\AuthenticationService');
     $request = $this->getRequest();
     if ($request->isPost()) {
         $form->setData($request->getPost());
         if ($form->isValid()) {
             $data = $form->getData();
             $adapter = $authService->getAdapter();
             $adapter->setIdentityValue($data['email']);
             $adapter->setCredentialValue($data['password']);
             $authResult = $authService->authenticate();
             if ($authResult->isValid()) {
                 $identity = $authResult->getIdentity();
                 $authService->getStorage()->write($identity);
                 $time = 1209600;
                 // 14 days 1209600/3600 = 336 hours => 336/24 = 14 days
                 //-					if ($data['rememberme']) $authService->getStorage()->session->getManager()->rememberMe($time); // no way to get the session
                 if ($data['remember-me']) {
                     $sessionManager = new SessionManager();
                     $sessionManager->rememberMe($time);
                 }
                 return $this->redirect()->toRoute('user_dashboard');
             } else {
                 $this->flashMessenger()->addErrorMessage("Invalid login credentials provided. Try again, or sign up!");
             }
         }
     }
     $view = new ViewModel(array('form' => $form));
     return $view;
 }
Пример #2
0
 public function onBootstrap(Event $e)
 {
     $session = new SessionManager();
     if (!$session->sessionExists()) {
         $session->start();
     }
 }
Пример #3
0
 public function __invoke(AuthenticationEvent $e)
 {
     $result = $e->getResult();
     if ($result->isValid()) {
         $this->sessionManager->writeClose();
     }
 }
Пример #4
0
 public function loginAction()
 {
     $form = $this->getAuthForm();
     $request = $this->getRequest();
     if ($request->isPost()) {
         $form->setData($request->getPost());
         if ($form->isValid()) {
             $authenticationService = $this->getAuthenticationService();
             $authAdapter = $authenticationService->getAdapter();
             $authAdapter->setLogin($request->getPost('email'));
             $authAdapter->setSenha($request->getPost('senha'));
             $resultado = $authenticationService->authenticate()->isValid();
             if ($resultado) {
                 $authenticationService->getStorage()->write($authenticationService->getIdentity()['cliente']);
                 if ($request->getPost('lembrar') == 'sim') {
                     $tempo = 2592000000.0;
                     // 30 dias em milissegundos
                     $SessionManager = new SessionManager();
                     $SessionManager->rememberMe($tempo);
                 }
                 return $this->redirect()->toRoute('cliente', array('controller' => 'cliente', 'action' => 'index'));
             } else {
                 echo "Login ou senha incorreto";
             }
         }
     }
     $viewModel = new ViewModel(['form' => $form]);
     return $viewModel->setTerminal(true);
 }
Пример #5
0
 public function initSession($config)
 {
     $sessionConfig = new SessionConfig();
     $sessionConfig->setOptions($config);
     $sessionManager = new SessionManager($sessionConfig);
     $sessionManager->start();
     Container::setDefaultManager($sessionManager);
 }
Пример #6
0
 public function sessionStart(MvcEvent $event)
 {
     $sessionConfig = new SessionConfig();
     $sessionConfig->setOptions(array());
     $sessionManager = new SessionManager($sessionConfig);
     $sessionManager->start();
     Container::setDefaultManager($sessionManager);
 }
Пример #7
0
 /**
  *  @return void
  */
 private function init()
 {
     $sessionConfig = new SessionConfig();
     $sessionConfig->setOptions($this->config);
     $sessionManager = new SessionManager($sessionConfig);
     $sessionManager->start();
     Container::setDefaultManager($sessionManager);
 }
Пример #8
0
 public function getServiceConfig()
 {
     return array('factories' => array('JYLibrary\\Model\\SessionTable' => function ($sm) {
         $dbAdapter = $sm->get('Zend\\Db\\Adapter\\Adapter');
         $table = new SessionTable($dbAdapter);
         return $table;
     }, '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'])) {
                 // class should be fetched from service manager since it will require constructor arguments
                 $sessionSaveHandler = $sm->get($session['save_handler']);
             }
             $sessionManager = new SessionManager($sessionConfig, $sessionStorage, $sessionSaveHandler);
             if (isset($session['validator'])) {
                 $chain = $sessionManager->getValidatorChain();
                 foreach ($session['validator'] as $validator) {
                     $validator = new $validator();
                     $chain->attach('session.validate', array($validator, 'isValid'));
                 }
             }
         } else {
             $sessionManager = new SessionManager();
             /*
             $adapter = new \Zend\Db\Adapter\Adapter(array(
             	'driver' => 'Mysqli',
             	'database' => 'jymobile',
             	'username' => 'root',
             	'password' => '',
             	'hostname'=>'localhost'
             ));
             
             $tableGateway = new TableGateway('session', $adapter);
             $saveHandler = new DbTableGateway($tableGateway, new DbTableGatewayOptions());
             $manager = new SessionManager();
             $manager->setSaveHandler($saveHandler);
             
             //echo '×Ô¶¨ÒåsessionManager';
             */
         }
         Container::setDefaultManager($sessionManager);
         return $sessionManager;
     }));
 }
Пример #9
0
 public function onBootstrap(MvcEvent $e)
 {
     $eventManager = $e->getApplication()->getEventManager();
     $moduleRouteListener = new ModuleRouteListener();
     $moduleRouteListener->attach($eventManager);
     $session = new SessionManager();
     $session->start();
     $eventManager->attach('dispatch', array($this, 'secureSession'));
 }
Пример #10
0
 /**
  * Disable session writes after this point in time.
  *
  * @return void
  */
 public function disableWrite()
 {
     // Set the flag
     $this->disableWrite = true;
     // If the session manager is already instantiated, close it!
     if (null !== $this->manager) {
         $this->manager->writeClose();
     }
 }
Пример #11
0
 public function preDispatch(MvcEvent $event)
 {
     $sessionManager = new SessionManager();
     $existedSessionId = $this->getSessionIfFromRequest($event->getRequest());
     if ($existedSessionId) {
         $sessionManager->setId($existedSessionId);
     }
     AuthenticationManager::getInstance()->setSessionManager($sessionManager);
 }
Пример #12
0
 public function onBootstrap(MvcEvent $e)
 {
     $eventManager = $e->getApplication()->getEventManager();
     $moduleRouteListener = new ModuleRouteListener();
     $moduleRouteListener->attach($eventManager);
     $sess = new SessionManager();
     $sess->start();
     Container::setDefaultManager($sess);
 }
Пример #13
0
 /**
  * Creates a new user session manager object.
  *
  * @param ConfigManager $configManager
  * @param UserManager $userManager
  * @param SessionManager $sessionManager;
  */
 public function __construct(ConfigManager $configManager, UserManager $userManager, SessionManager $sessionManager)
 {
     $this->configManager = $configManager;
     $this->userManager = $userManager;
     $this->sessionManager = $sessionManager;
     /* Prepare session validators */
     $sessionManager->getValidatorChain()->attach('session.validate', array(new HttpUserAgent(), 'isValid'));
     $sessionManager->getValidatorChain()->attach('session.validate', array(new RemoteAddr(), 'isValid'));
 }
Пример #14
0
 public function configure($object, array $options = [])
 {
     $manager = new Session\SessionManager();
     $manager->setStorage(new Session\Storage\ArrayStorage());
     $manager->setSaveHandler(new Session\SaveHandler\Cache(new CacheStorageAdapterMemory()));
     $manager->setConfig(new Session\Config\StandardConfig());
     $session = new Session\Container('Default', $manager);
     $object->getServiceLocator()->set('Zend\\Session\\Container', $session);
 }
Пример #15
0
 public function getServiceConfig()
 {
     return array('factories' => array('Zend\\Session\\SessionManager' => function ($sm) {
         $db = $sm->get('Zend\\Db\\Adapter\\Adapter');
         $saveHandler = new SaveHandler();
         $saveHandler->setDb($db);
         $manager = new SessionManager();
         $manager->setSaveHandler($saveHandler);
         return $manager;
     }));
 }
 public function getSessionManager()
 {
     $sessionManager = new ZendSessionManager($this->getConfigObject(), $this->getStorageObject(), $this->getSessionSaveHandler());
     $chain = $sessionManager->getValidatorChain();
     foreach ($this->getSessionOptions()->getValidators() as $validatorName) {
         $validator = $this->validatorPluginManager->get($validatorName);
         $chain->attach('session.validate', array($validator, 'isValid'));
     }
     SessionContainer::setDefaultManager($sessionManager);
     return $sessionManager;
 }
Пример #17
0
 /**
     COPY DARI SIMBRA :D
     **/
 public function getServiceConfig()
 {
     return array('factories' => array('Fauth\\Model\\User' => function ($sm) {
         $adapter = $sm->get('TNDE\\DbAdapter');
         $table = new UserDbTable($adapter);
         return $table;
     }, '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'])) {
                 // class should be fetched from service manager since it will require constructor arguments
                 $sessionSaveHandler = $sm->get($session['save_handler']);
             }
             $sessionManager = new SessionManager($sessionConfig, $sessionStorage, $sessionSaveHandler);
             if (isset($session['validator'])) {
                 $chain = $sessionManager->getValidatorChain();
                 foreach ($session['validator'] as $validator) {
                     $validator = new $validator();
                     $chain->attach('session.validate', array($validator, 'isValid'));
                 }
             }
         } else {
             $sessionManager = new SessionManager();
         }
         Container::setDefaultManager($sessionManager);
         return $sessionManager;
     }, 'Fauth\\sessionContainer' => function ($sm) {
         $container = new Container('container');
         if (!isset($container->init)) {
             $session = $sm->get('Zend\\Session\\SessionManager');
             $session->regenerateId(true);
             $container->init = 1;
         }
         return $container;
     }, 'Fauth\\authService' => function ($sm) {
         $container = $sm->get('Fauth\\sessionContainer');
         $authService = new AuthService($container);
         return $authService;
     }));
 }
Пример #18
0
 public function logoutAction()
 {
     $auth = new AuthenticationService();
     if ($auth->hasIdentity()) {
         $identity = $auth->getIdentity();
         $auth->clearIdentity();
         $sessionManager = new SessionManager();
         $sessionManager->forgetMe();
     }
     $this->redirect()->toRoute('backend_login');
 }
Пример #19
0
 public function onBootstrap(MvcEvent $e)
 {
     /* @var $sm \Zend\ServiceManager\ServiceManager */
     $sm = $e->getApplication()->getServiceManager();
     $config = $sm->get('Config');
     // bootstrap session
     $tableGateway = new TableGateway($config['app']['session.tableName'], $sm->get('dbAdapter'));
     $saveHandler = new DbTableGateway($tableGateway, new DbTableGatewayOptions());
     $sessionConfig = new SessionConfig();
     $sessionConfig->setOptions($config['session']);
     $sessionManager = new SessionManager($sessionConfig);
     $sessionManager->setSaveHandler($saveHandler);
     $sessionManager->start();
     Container::setDefaultManager($sessionManager);
     // translate
     $sm->get('translator');
     $eventManager = $e->getApplication()->getEventManager();
     $moduleRouteListener = new ModuleRouteListener();
     $moduleRouteListener->attach($eventManager);
     // bootstrap locale
     //     	$headers = $app->getRequest()->getHeaders();
     //     	Locale::setDefault($config['locale']['default']);
     //     	if($headers->has('Accept-Language')) {
     //     		$locales = $headers->get('Accept-Language')->getPrioritized();
     //     		// Loop through all locales, highest priority first
     //     		foreach($locales as $locale) {
     //     			if(!!($match = Locale::lookup($config['locale']['supported'], $locale->typeString))) {
     //     				// The locale is one of our supported list
     //     				Locale::setDefault($match);
     //     				break;
     //     			}
     //     		}
     //     		if(!$match) {
     //     			// Nothing from the supported list is a match
     //     			Locale::setDefault($config['locale']['default']);
     //     		}
     //     	}
     // switch layout
     $e->getApplication()->getEventManager()->getSharedManager()->attach('Zend\\Mvc\\Controller\\AbstractActionController', 'dispatch', function ($e) {
         $controller = $e->getTarget();
         $controllerClass = get_class($controller);
         $moduleNamespace = substr($controllerClass, 0, strpos($controllerClass, '\\'));
         $config = $e->getApplication()->getServiceManager()->get('config');
         $routeMatch = $e->getRouteMatch();
         $actionName = strtolower($routeMatch->getParam('action', 'not-found'));
         // get the action name
         if (isset($config['module_layouts'][$moduleNamespace][$actionName])) {
             $controller->layout($config['module_layouts'][$moduleNamespace][$actionName]);
         } elseif (isset($config['module_layouts'][$moduleNamespace]['default'])) {
             $controller->layout($config['module_layouts'][$moduleNamespace]['default']);
         }
     }, 100);
 }
Пример #20
0
 public function onBootstrap(MvcEvent $e)
 {
     $app = $e->getApplication();
     $sm = $app->getServiceManager();
     $request = $app->getRequest();
     $response = $app->getResponse();
     $appConfig = $sm->get('Configuration');
     $sessionConfig = new SessionConfig();
     $sessionConfig->setOptions($appConfig['session']);
     $sessionManager = new SessionManager($sessionConfig);
     $sessionManager->start();
     $responseHeaders = $response->getHeaders();
     $requestHeaders = $request->getHeaders();
     $this->checkCloudFlareHttpHeader();
     $requestUriPath = $request->getUri()->getPath();
     $requestExtension = pathinfo($requestUriPath, PATHINFO_EXTENSION);
     if (!in_array($requestExtension, ['js', 'css'])) {
         $eventManager = $app->getEventManager();
         $moduleRouteListener = new ModuleRouteListener();
         $moduleRouteListener->attach($eventManager);
         $sharedManager = $eventManager->getSharedManager();
         $sharedManager->attach('Zend\\Mvc\\Controller\\AbstractActionController', 'dispatch', function ($e) use($sm) {
             $controller = $e->getTarget();
             $controller->getEventManager()->attachAggregate($sm->get('Visitor'));
         }, 2);
         $client = new RemoteAddress();
         $queryParams = $request->getQuery();
         $setPartnerId = (isset($queryParams['gid']) and is_numeric($queryParams['gid'])) ? ['gid' => (int) $queryParams['gid'], 'url' => $request->getUri()] : FALSE;
         $setLang = (isset($queryParams['lang']) and is_string($queryParams['lang'])) ? ['lang' => $queryParams['lang'], 'url' => $request->getUri()] : FALSE;
         $setCurrency = (isset($queryParams['cur']) and is_string($queryParams['cur'])) ? ['cur' => $queryParams['cur'], 'url' => $request->getUri()] : FALSE;
         if ($requestHeaders->has('Accept-Language')) {
             $browserLang = $requestHeaders->get('Accept-Language')->getPrioritized();
         } else {
             $browserLang = FALSE;
         }
         if ($requestHeaders->has('User-Agent')) {
             $userAgent = $requestHeaders->get('User-Agent')->getFieldValue();
         } else {
             $userAgent = FALSE;
         }
         if ($requestHeaders->has('Referer')) {
             $referer = $requestHeaders->get('Referer');
         } else {
             $referer = FALSE;
         }
         $eventManager->trigger('detectVisitor', $this, array('setLang' => $setLang, 'setCurrency' => $setCurrency, 'browserLang' => $browserLang, 'userAgent' => $userAgent, 'referer' => $referer, 'request' => $request, 'clientIp' => $client->getIpAddress(), 'clientProxy' => $client->getUseProxy(), 'setPartnerId' => $setPartnerId, 'sessionManager' => $sessionManager, 'response' => $response, 'responseHeaders' => $responseHeaders, 'requestHeaders' => $requestHeaders, 'serviceLocator' => $sm));
         $eventManager->attach(\Zend\Mvc\MvcEvent::EVENT_ROUTE, array($this, 'onPreDispatch'));
     }
     $dbAdapter = $sm->get('Zend\\Db\\Adapter\\Adapter');
     GlobalAdapterFeature::setStaticAdapter($dbAdapter);
 }
 public function __invoke()
 {
     $sessionConfig = new SessionConfig();
     $sessionConfig->setOptions($this->config['options']);
     $sessionManager = new SessionManager($sessionConfig);
     if (class_exists(\Redis::class)) {
         $saveHandler = new Redis($this->config['redis']['host'], $this->config['redis']['port'], $this->config['redis']['password']);
         $sessionManager->setSaveHandler($saveHandler);
         $sessionManager->start();
     } else {
         trigger_error('Redis extension is not found. ' . \Staticus\Auth\AuthSessionMiddleware::class . ' will not work.', E_USER_NOTICE);
     }
     return $sessionManager;
 }
 /**
  * @param ServerRequestInterface $request
  * @param ResponseInterface $response
  * @param callable|null $next
  * @return ResponseInterface
  */
 public function __invoke(ServerRequestInterface $request, ResponseInterface $response, callable $next = null)
 {
     $this->sessionManager->start();
     Container::setDefaultManager($this->sessionManager);
     $container = new Container('initialized');
     if (isset($container->init)) {
         return $next($request, $response);
     }
     $this->sessionManager->regenerateId(true);
     $container->init = true;
     if ($next) {
         return $next($request, $response);
     }
     return $response;
 }
 /**
  * Registers services on the given app.
  *
  * This method should only be used to configure services and parameters.
  * It should not get services.
  *
  * @param Application $app
  */
 public function register(Application $app)
 {
     $app['zend.session.handler._factory'] = $app->protect(function ($type, $options) use($app) {
         switch ($type) {
             case 'SilexCMF\\ZendSession\\SaveHandler\\Db':
                 return new Db($app[$options['connection']], new DbOptions());
             case 'Zend\\Session\\SaveHandler\\MongoDB':
                 return new MongoDB($app['mongo'], new MongoDBOptions($options));
         }
         return null;
     });
     $app['zend.session.manager'] = $app->share(function () use($app) {
         $options = isset($app['zend.session.options']) ? $app['zend.session.options'] : [];
         $config = null;
         if (isset($options['config'])) {
             $config = new SessionConfig();
             $config->setOptions($options['config']);
         }
         $storage = null;
         if (isset($options['storage'])) {
             $storage = Factory::factory($options['storage']['type'], isset($options['storage']['options']) ? $options['storage']['options'] : []);
         }
         $handler = null;
         if (isset($options['handler'])) {
             $handler = $app['zend.session.handler._factory']($options['handler']['type'], isset($options['handler']['options']) ? $options['handler']['options'] : []);
         }
         $manager = new SessionManager($config, $storage, $handler);
         if (isset($options['validators'])) {
             /* @var $request \Symfony\Component\HttpFoundation\Request */
             $request = $app['request_stack']->getCurrentRequest();
             foreach ($options['validators'] as $validator) {
                 switch ($validator) {
                     case 'Zend\\Session\\Validator\\HttpUserAgent':
                         $validator = new $validator($request->server->get('HTTP_USER_AGENT'));
                         break;
                     case 'Zend\\Session\\Validator\\RemoteAddr':
                         $validator = new $validator($request->server->get('REMOTE_ADDR'));
                         break;
                     default:
                         $validator = new $validator();
                 }
                 $manager->getValidatorChain()->attach('session.validate', array($validator, 'isValid'));
             }
         }
         Container::setDefaultManager($manager);
         return $manager;
     });
 }
Пример #24
0
 /**
  * @return bool|mixed $sessionId
  */
 public function getSessionId()
 {
     if ($this->sessionManager->sessionExists()) {
         return $this->sessionId;
     }
     return false;
 }
 /**
  * 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;
         }
     }
 }
Пример #26
0
 public function onBootstrap(MvcEvent $e)
 {
     $eventManager = $e->getApplication()->getEventManager();
     $moduleRouteListener = new ModuleRouteListener();
     $moduleRouteListener->attach($eventManager);
     $settings = $e->getApplication()->getServiceManager()->get("Config");
     if (isset($settings['zDbSession']) && $settings['zDbSession']['enabled']) {
         $sessionConfig = new \Zend\Session\Config\SessionConfig();
         $sessionConfig->setOptions($settings['zDbSession']['sessionConfig']);
         $saveHandler = new DoctrineGateway($e->getApplication()->getServiceManager());
         $sessionManager = new SessionManager();
         $sessionManager->setConfig($sessionConfig);
         $sessionManager->setSaveHandler($saveHandler);
         Container::setDefaultManager($sessionManager);
         $sessionManager->start();
     }
 }
Пример #27
0
 public function loginAction()
 {
     $request = $this->getRequest();
     $smarty = $this->getServiceLocator()->get('Smarty');
     if ($request->isGet()) {
         $smarty->assign('error', null);
         $smarty->display('admin/login.tpl');
     } else {
         $success = true;
         $error = null;
         $name = $request->getPost('name');
         $password = $request->getPost('password');
         $success = false;
         if (!$name || !$password) {
             $error = '用户名和密码不能为空';
         } else {
             $tableGateway = $this->getServiceLocator()->get('UserTable');
             $users = $tableGateway->findByName($name);
             if ($users->count() != 1) {
                 $error = '用户名或密码不正确';
             } else {
                 $password_additional = $this->getServiceLocator()->get('config')['password_additional'];
                 $realPassword = md5($password . $password_additional);
                 if ($users->current()->getPassword() === $realPassword) {
                     $session = new SessionManager();
                     $user = $users->current();
                     $storage = new ArrayStorage(['user' => $user]);
                     if ($session->setStorage($storage)) {
                         $success = true;
                     } else {
                         $error = '写入session失败';
                     }
                 } else {
                     $error = '密码不正确';
                 }
             }
         }
         if ($success) {
             $this->redirect()->toUrl('/admin');
         } else {
             $smarty->assign('error', $error);
             $smarty->display('admin/login.tpl');
         }
     }
 }
Пример #28
0
 public function onBootstrap(MvcEvent $e)
 {
     $evm = $e->getApplication()->getEventManager();
     $moduleRouteListener = new ModuleRouteListener();
     $moduleRouteListener->attach($evm);
     /** @var ServiceManager $sm */
     $sm = $e->getApplication()->getServiceManager();
     $evm->attachAggregate($sm->get('App\\ExceptionLoggerListener'));
     $config = $e->getApplication()->getServiceManager()->get('config');
     $sessionConfig = new SessionConfig();
     $sessionConfig->setOptions($config['session']);
     $sessionManager = new SessionManager($sessionConfig);
     $sessionManager->start();
     SessionContainer::setDefaultManager($sessionManager);
     $evm->attach(MvcEvent::EVENT_DISPATCH, function (MvcEvent $e) {
         $this->initEnv($e);
     }, 100);
 }
 public function createService(ServiceLocatorInterface $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'])) {
             // class should be fetched from service manager since
             // it will require constructor arguments
             $sessionSaveHandler = $sm->get($session['save_handler']);
         }
         $sessionManager = new SessionManager($sessionConfig, $sessionStorage, $sessionSaveHandler);
         //применить валидаторы
         if (isset($session['validators'])) {
             $chain = $sessionManager->getValidatorChain();
             foreach ($session['validators'] as $validator) {
                 $validator = new $validator();
                 $chain->attach('session.validate', array($validator, 'isValid'));
             }
         }
     } else {
         //если нет конфига - возвращаем по умолчанию
         //            $sessionManager = new SessionManager();
         $sessionManager = parent::createService($services);
     }
     //установка для контейнеров
     Container::setDefaultManager($sessionManager);
     return $sessionManager;
 }
Пример #30
0
 public function initSession($config)
 {
     $sessionConfig = new SessionConfig();
     $sessionConfig->setOptions($config);
     $sessionManager = new SessionManager($sessionConfig);
     $sessionManager->getValidatorChain()->attach('session.validate', array(new HttpUserAgent(), 'isValid'));
     /*
               $sessionManager->getValidatorChain()
               ->attach(
                 'session.validate',
                   array(new RemoteAddr(), 'isValid')
               );*/
     $sessionManager->start();
     /**
      * Optional: If you later want to use namespaces, you can already store the 
      * Manager in the shared (static) Container (=namespace) field
      */
     Container::setDefaultManager($sessionManager);
 }