public function test_authenticate() { // no login; no token auth $auth = new Piwik_Login_Auth(); $rc = $auth->authenticate(); $this->assertEqual($rc->getCode(), Piwik_Auth_Result::FAILURE); // empty login; no token auth $auth->setLogin(''); $rc = $auth->authenticate(); $this->assertEqual($rc->getCode(), Piwik_Auth_Result::FAILURE); // non-existent user $auth->setLogin('nobody'); $rc = $auth->authenticate(); $this->assertEqual($rc->getCode(), Piwik_Auth_Result::FAILURE); // anonymous user doesn't exist yet $auth->setLogin('anonymous'); $auth->setTokenAuth(''); $rc = $auth->authenticate(); $this->assertEqual($rc->getCode(), Piwik_Auth_Result::FAILURE); // empty login; anonymous user doesn't exist yet $auth->setLogin(''); $auth->setTokenAuth('anonymous'); $rc = $auth->authenticate(); $this->assertEqual($rc->getCode(), Piwik_Auth_Result::FAILURE); // API authentication; anonymous user doesn't exist yet $auth->setLogin(null); $auth->setTokenAuth('anonymous'); $rc = $auth->authenticate(); $this->assertEqual($rc->getCode(), Piwik_Auth_Result::FAILURE); // anonymous user doesn't exist yet $auth->setLogin('anonymous'); $auth->setTokenAuth('anonymous'); $rc = $auth->authenticate(); $this->assertEqual($rc->getCode(), Piwik_Auth_Result::FAILURE); Piwik::createAnonymousUser(); // missing token_auth $auth->setLogin('anonymous'); $auth->setTokenAuth(''); $rc = $auth->authenticate(); $this->assertEqual($rc->getCode(), Piwik_Auth_Result::FAILURE); // empty login $auth->setLogin(''); $auth->setTokenAuth('anonymous'); $rc = $auth->authenticate(); $this->assertEqual($rc->getCode(), Piwik_Auth_Result::FAILURE); // not equal $auth->setLogin('anonymous'); $auth->setTokenAuth(0); $rc = $auth->authenticate(); $this->assertEqual($rc->getCode(), Piwik_Auth_Result::FAILURE); // API authentication $auth->setLogin(null); $auth->setTokenAuth('anonymous'); $rc = $auth->authenticate(); $this->assertEqual($rc->getCode(), Piwik_Auth_Result::SUCCESS); // valid login & token auth $auth->setLogin('anonymous'); $auth->setTokenAuth('anonymous'); $rc = $auth->authenticate(); $this->assertEqual($rc->getCode(), Piwik_Auth_Result::SUCCESS); $user = array('login' => 'user', 'password' => "geqgeagae", 'email' => "*****@*****.**", 'alias' => "alias"); Piwik_UsersManager_API::getInstance()->addUser($user['login'], $user['password'], $user['email'], $user['alias']); $password = md5($user['password']); $tokenAuth = Piwik_UsersManager_API::getInstance()->getTokenAuth($user['login'], $password); // empty token auth $auth->setLogin($user['login']); $auth->setTokenAuth(''); $rc = $auth->authenticate(); $this->assertEqual($rc->getCode(), Piwik_Auth_Result::FAILURE); // not a token auth $auth->setLogin($user['login']); $auth->setTokenAuth($user['password']); $rc = $auth->authenticate(); $this->assertEqual($rc->getCode(), Piwik_Auth_Result::FAILURE); // not a token auth $auth->setLogin($user['login']); $auth->setTokenAuth($password); $rc = $auth->authenticate(); $this->assertEqual($rc->getCode(), Piwik_Auth_Result::FAILURE); // empty login $auth->setLogin(''); $auth->setTokenAuth($tokenAuth); $rc = $auth->authenticate(); $this->assertEqual($rc->getCode(), Piwik_Auth_Result::FAILURE); // not equal $auth->setLogin(0); $auth->setTokenAuth(0); $rc = $auth->authenticate(); $this->assertEqual($rc->getCode(), Piwik_Auth_Result::FAILURE); // not equal $auth->setLogin(0); $auth->setTokenAuth($tokenAuth); $rc = $auth->authenticate(); $this->assertEqual($rc->getCode(), Piwik_Auth_Result::FAILURE); // not equal $auth->setLogin($user['login']); $auth->setTokenAuth(0); $rc = $auth->authenticate(); $this->assertEqual($rc->getCode(), Piwik_Auth_Result::FAILURE); // API authentication $auth->setLogin(null); $auth->setTokenAuth($tokenAuth); $rc = $auth->authenticate(); $this->assertEqual($rc->getCode(), Piwik_Auth_Result::SUCCESS); // valid login & token auth $auth->setLogin($user['login']); $auth->setTokenAuth($tokenAuth); $rc = $auth->authenticate(); $this->assertEqual($rc->getCode(), Piwik_Auth_Result::SUCCESS); // valid login & hashed token auth $auth->setLogin($user['login']); $hash = $auth->getHashTokenAuth($user['login'], $tokenAuth); $auth->setTokenAuth($hash); $rc = $auth->authenticate(); $this->assertEqual($rc->getCode(), Piwik_Auth_Result::SUCCESS); $user = Piwik_Config::getInstance()->superuser; $password = $user['password']; $tokenAuth = Piwik_UsersManager_API::getInstance()->getTokenAuth($user['login'], $password); // empty token auth $auth->setLogin($user['login']); $auth->setTokenAuth(''); $rc = $auth->authenticate(); $this->assertEqual($rc->getCode(), Piwik_Auth_Result::FAILURE); // not a token auth $auth->setLogin($user['login']); $auth->setTokenAuth($user['password']); $rc = $auth->authenticate(); $this->assertEqual($rc->getCode(), Piwik_Auth_Result::FAILURE); // not a token auth $auth->setLogin($user['login']); $auth->setTokenAuth($password); $rc = $auth->authenticate(); $this->assertEqual($rc->getCode(), Piwik_Auth_Result::FAILURE); // empty login $auth->setLogin(''); $auth->setTokenAuth($tokenAuth); $rc = $auth->authenticate(); $this->assertEqual($rc->getCode(), Piwik_Auth_Result::FAILURE); // not equal $auth->setLogin($user['login']); $auth->setTokenAuth(0); $rc = $auth->authenticate(); $this->assertEqual($rc->getCode(), Piwik_Auth_Result::FAILURE); // API authentication $auth->setLogin(null); $auth->setTokenAuth($tokenAuth); $rc = $auth->authenticate(); $this->assertEqual($rc->getCode(), Piwik_Auth_Result::SUCCESS_SUPERUSER_AUTH_CODE); // valid login & token auth $auth->setLogin($user['login']); $auth->setTokenAuth($tokenAuth); $rc = $auth->authenticate(); $this->assertEqual($rc->getCode(), Piwik_Auth_Result::SUCCESS_SUPERUSER_AUTH_CODE); // valid login & hashed token auth $auth->setLogin($user['login']); $hash = $auth->getHashTokenAuth($user['login'], $tokenAuth); $auth->setTokenAuth($hash); $rc = $auth->authenticate(); $this->assertEqual($rc->getCode(), Piwik_Auth_Result::SUCCESS_SUPERUSER_AUTH_CODE); }
/** * @group Plugins * @group Login */ public function testAuthenticateSuccessSuperUserLoginAndHashedTokenAuth() { $user = Piwik_Config::getInstance()->superuser; $password = $user['password']; $tokenAuth = Piwik_UsersManager_API::getInstance()->getTokenAuth($user['login'], $password); // valid login & hashed token auth $auth = new Piwik_Login_Auth(); $auth->setLogin($user['login']); $hash = $auth->getHashTokenAuth($user['login'], $tokenAuth); $auth->setTokenAuth($hash); $rc = $auth->authenticate(); $this->assertEquals(Piwik_Auth_Result::SUCCESS_SUPERUSER_AUTH_CODE, $rc->getCode()); }