X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=src%2FModule%2FOwa.php;h=306c525c062698bcdf88516d6f1b666b6700f356;hb=065b83d148775f30712532d0242f7d1508a7d0b0;hp=27c863e1b7ceb81ee08ae64dbc73f4bc8e49218a;hpb=1c7f4e3c6331f8ad7b1987f33a17074908ad41eb;p=friendica.git diff --git a/src/Module/Owa.php b/src/Module/Owa.php index 27c863e1b7..306c525c06 100644 --- a/src/Module/Owa.php +++ b/src/Module/Owa.php @@ -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; @@ -23,6 +22,8 @@ use dba; * If the signature verifies a token is returned. * * This token may be exchanged for an authenticated cookie. + * + * Ported from Hubzilla: https://framagit.org/hubzilla/core/blob/master/Zotlabs/Module/Owa.php */ class Owa extends BaseModule { @@ -38,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); @@ -69,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 = '';