]> git.mxchange.org Git - friendica.git/blobdiff - src/Module/Owa.php
Fixed memcache & unittests
[friendica.git] / src / Module / Owa.php
index 337c0554feba39e7ecc667de85bca22988fd1cb2..306c525c062698bcdf88516d6f1b666b6700f356 100644 (file)
@@ -7,10 +7,9 @@ namespace Friendica\Module;
 use Friendica\BaseModule;
 use Friendica\Core\System;
 use Friendica\Database\DBM;
-use Friendica\Model\Verify;
-use Friendica\Network\Probe;
-use Friendica\Util\DateTimeFormat;
-use Friendica\Util\HTTPSig;
+use Friendica\Model\Contact;
+use Friendica\Model\OpenWebAuthToken;
+use Friendica\Util\HTTPSignature;
 
 use dba;
 
@@ -40,28 +39,24 @@ class Owa extends BaseModule
                                        continue;
                                }
 
-                               $sigblock = HTTPSig::parseSigheader($_SERVER[$head]);
+                               $sigblock = HTTPSignature::parseSigheader($_SERVER[$head]);
                                if ($sigblock) {
                                        $keyId = $sigblock['keyId'];
 
                                        if ($keyId) {
                                                // Try to find the public contact entry of the handle.
-                                               $handle = str_replace("acct:", "", $keyId);
-                                               $fields = ["id", "url", "addr", "pubkey"];
-                                               $condition = ["addr" => $handle, "uid" => 0];
+                                               $handle = str_replace('acct:', '', $keyId);
 
-                                               $contact = dba::selectFirst("contact", $fields, $condition);
+                                               $cid       = Contact::getIdForURL($handle);
+                                               $fields    = ['id', 'url', 'addr', 'pubkey'];
+                                               $condition = ['id' => $cid];
 
-                                               // Not found? Try to probe with the handle.
-                                               if(!DBM::is_result($contact)) {
-                                                       Probe::uri($handle, '', -1, true, true);
-                                                       $contact = dba::selectFirst("contact", $fields, $condition);
-                                               }
+                                               $contact = dba::selectFirst('contact', $fields, $condition);
 
                                                if (DBM::is_result($contact)) {
                                                        // Try to verify the signed header with the public key of the contact record
                                                        // we have found.
-                                                       $verified = HTTPSig::verify('', $contact['pubkey']);
+                                                       $verified = HTTPSignature::verify('', $contact['pubkey']);
 
                                                        if ($verified && $verified['header_signed'] && $verified['header_valid']) {
                                                                logger('OWA header: ' . print_r($verified, true), LOGGER_DATA);
@@ -71,7 +66,7 @@ class Owa extends BaseModule
                                                                $token = random_string(32);
 
                                                                // Store the generated token in the databe.
-                                                               Verify::create('owt', 0, $token, $contact['addr']);
+                                                               OpenWebAuthToken::create('owt', 0, $token, $contact['addr']);
 
                                                                $result = '';