![]() Server : LiteSpeed System : Linux premium84.web-hosting.com 4.18.0-553.44.1.lve.el8.x86_64 #1 SMP Thu Mar 13 14:29:12 UTC 2025 x86_64 User : claqxcrl ( 523) PHP Version : 8.1.32 Disable Function : NONE Directory : /home/claqxcrl/anfangola.com/wp-content/plugins/matomo/app/core/Session/ |
<?php /** * Matomo - free/libre analytics platform * * @link https://matomo.org * @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later * */ namespace Piwik\Session; use Exception; use Piwik\Auth as AuthInterface; use Piwik\AuthResult; use Piwik\Piwik; use Piwik\Session; /** * Initializes authenticated sessions using an Auth implementation. */ class SessionInitializer { /** * Authenticates the user and, if successful, initializes an authenticated session. * * @param \Piwik\Auth $auth The Auth implementation to use. * @throws Exception If authentication fails or the user is not allowed to login for some reason. */ public function initSession(AuthInterface $auth) { $this->regenerateSessionId(); $authResult = $this->doAuthenticateSession($auth); if (!$authResult->wasAuthenticationSuccessful()) { Piwik::postEvent('Login.authenticate.failed', array($auth->getLogin())); $this->processFailedSession(); } else { Piwik::postEvent('Login.authenticate.successful', array($auth->getLogin())); $this->processSuccessfulSession($authResult); } } /** * Authenticates the user. * * Derived classes can override this method to customize authentication logic or impose * extra requirements on the user trying to login. * * @param AuthInterface $auth The Auth implementation to use when authenticating. * @return AuthResult */ protected function doAuthenticateSession(AuthInterface $auth) { Piwik::postEvent('Login.authenticate', array($auth->getLogin())); return $auth->authenticate(); } /** * Executed when the session could not authenticate. * * @throws Exception always. */ protected function processFailedSession() { throw new Exception(Piwik::translate('Login_LoginPasswordNotCorrect')); } /** * Executed when the session was successfully authenticated. * * @param AuthResult $authResult The successful authentication result. */ protected function processSuccessfulSession(AuthResult $authResult) { $sessionIdentifier = new \Piwik\Session\SessionFingerprint(); $sessionIdentifier->initialize($authResult->getIdentity(), $authResult->getTokenAuth(), $this->isRemembered()); /** * @ignore */ Piwik::postEvent('Login.authenticate.processSuccessfulSession.end', array($authResult->getIdentity())); } protected function regenerateSessionId() { Session::regenerateId(); } private function isRemembered() { $cookieParams = session_get_cookie_params(); return $cookieParams['lifetime'] > 0; } }