validTokens = $validTokensArg; } /** * Validates a username and password * * This method should return true or false depending on if login * succeeded. * * @return bool */ protected function validateUserPass($username, $password){ //always give read-only: if(in_array($_SERVER['REQUEST_METHOD'], array('GET', 'HEAD', 'OPTIONS'))) { OC_Util::setUpFS(); return true; } else if(isset($this->validTokens[$password]) && $this->validTokens[$password] == $username) { OC_Util::setUpFS(); return true; } else { var_export($_SERVER); var_export($this->validTokens); die('not getting in with "'.$username.'"/"'.$password.'"!'); return false; } } //overwriting this to make it not automatically fail if no auth header is found: public function authenticate(Sabre_DAV_Server $server,$realm) { $auth = new Sabre_HTTP_BasicAuth(); $auth->setHTTPRequest($server->httpRequest); $auth->setHTTPResponse($server->httpResponse); $auth->setRealm($realm); $userpass = $auth->getUserPass(); if (!$userpass) { if(in_array($_SERVER['REQUEST_METHOD'], array('OPTIONS'))) { $userpass = array('', ''); } else { $auth->requireLogin(); throw new Sabre_DAV_Exception_NotAuthenticated('No basic authentication headers were found'); } } // Authenticates the user if (!$this->validateUserPass($userpass[0],$userpass[1])) { $auth->requireLogin(); throw new Sabre_DAV_Exception_NotAuthenticated('Username or password does not match'); } $this->currentUser = $userpass[0]; return true; } }