Exemple #1
0
 /**
  * This is being run in normal order before the controller is being
  * called which allows several modifications and checks
  *
  * @param Controller $controller the controller that is being called
  * @param string $methodName the name of the method that will be called on
  *                           the controller
  * @throws SecurityException
  * @since 6.0.0
  */
 public function beforeController($controller, $methodName)
 {
     // ensure that @CORS annotated API routes are not used in conjunction
     // with session authentication since this enables CSRF attack vectors
     if ($this->reflector->hasAnnotation('CORS') && !$this->reflector->hasAnnotation('PublicPage')) {
         $user = $this->request->server['PHP_AUTH_USER'];
         $pass = $this->request->server['PHP_AUTH_PW'];
         $this->session->logout();
         if (!$this->session->login($user, $pass)) {
             throw new SecurityException('CORS requires basic auth', Http::STATUS_UNAUTHORIZED);
         }
     }
 }
Exemple #2
0
 /**
  * Validates a username and password
  *
  * This method should return true or false depending on if login
  * succeeded.
  *
  * @param string $username
  * @param string $password
  * @return bool
  */
 protected function validateUserPass($username, $password)
 {
     if ($this->userSession->isLoggedIn() && $this->isDavAuthenticated($this->userSession->getUser()->getUID())) {
         \OC_Util::setupFS($this->userSession->getUser()->getUID());
         $this->session->close();
         return true;
     } else {
         \OC_Util::setUpFS();
         //login hooks may need early access to the filesystem
         if ($this->userSession->login($username, $password)) {
             \OC_Util::setUpFS($this->userSession->getUser()->getUID());
             $this->session->set(self::DAV_AUTHENTICATED, $this->userSession->getUser()->getUID());
             $this->session->close();
             return true;
         } else {
             $this->session->close();
             return false;
         }
     }
 }