Ejemplo n.º 1
0
 function execute($arg)
 {
     // Récupère la ligne X-WSSE du header
     $headers = apache_request_headers();
     $auth_line = '';
     foreach ($headers as $header => $value) {
         if ($header == "X-WSSE") {
             $auth_line = $value;
         }
     }
     if ($auth_line != '') {
         // on récupère les informations du header
         $pattern = 'Username="******", PasswordDigest="(.+)",';
         $pattern .= ' Nonce="(.+)", Created="(.+)", Expires="(.+)"';
         if (ereg($pattern, $auth_line, $regs)) {
             $auth = $arg['marker']->authenticate($regs[1], $regs[2], $regs[3], $regs[4], false);
             if (Blogmarks::isError($auth)) {
                 return $auth;
             }
         } else {
             return BlogMarks::raiseError("Erreur à la ligne X-WSSE : {$pattern} ne vérfifie pas {$auth_line}", 400);
         }
     }
     // passe au filtre suivant
     if ($this->_hasChild) {
         $tmp =& $this->_childFilter;
         return $tmp->execute($arg);
     }
 }
Ejemplo n.º 2
0
 function execute($arg)
 {
     // Récupère la ligne X-WSSE du header
     $headers = apache_request_headers();
     $auth_line = '';
     foreach ($headers as $header => $value) {
         if ($header == "X-WSSE") {
             $auth_line = $value;
         }
     }
     if ($auth_line != '') {
         // on récupère les informations du header
         $pattern = 'Username="******", PasswordDigest="(.+)",';
         $pattern .= ' Nonce="(.+)", Created="(.+)"';
         if (ereg($pattern, $auth_line, $regs)) {
             $marker = new BlogMarks_Marker();
             echo "authentifie ...\n";
             $auth_str = $marker->authenticate($regs[1], $regs[2], $regs[3], $regs[4]);
             if (Blogmarks::isError($auth_str)) {
                 echo "Error :" . $auth_str->getMessage() . "\n";
             }
             $arg['auth_str'] = $auth_str;
         } else {
             return BlogMarks::raiseError("Erreur à la ligne X-WSSE : {$pattern} ne vérfifie pas {$auth_line}", 400);
         }
     }
     // passe au filtre suivant
     if ($this->_hasChild) {
         $tmp =& $this->_childFilter;
         return $tmp->execute($arg);
     }
 }
Ejemplo n.º 3
0
 /** Parse un document XML décrivant un Tag et renvoit un tableau de valeurs.
  */
 function parseAtom($buffer)
 {
     $props = array();
     // on construit le DOM à partir du flux XML
     if (!($dom = domxml_open_mem($buffer))) {
         return BlogMarks::raiseError('Impossible de créer le document DOM', 500);
     }
     // récupère l'élément racine (tag)
     $root = $dom->document_element();
     // enregistre la langue du tag
     $props['lang'] = $root->get_attribute('lang');
     // enregistre le titre du tag
     $title = $root->get_elements_by_tagname('title');
     $props['title'] = $title[0]->get_content();
     // enregistre la description du tag
     $summary = $root->get_elements_by_tagname('summary');
     $props['summary'] = $summary[0]->get_content();
     // enregistre le nom du tag parent
     $subTagOf = $root->get_elements_by_tagname('subTagOf');
     if (!($subTagOf = array())) {
         $props['subTagOf'] = $subTagOf[0]->get_content();
     }
     return $props;
 }