]> git.mxchange.org Git - friendica.git/blobdiff - src/Module/Owa.php
Merge pull request #12010 from annando/notice
[friendica.git] / src / Module / Owa.php
index a1dbfa2f315ea3aa8b31d9f2f12e5ae99854f5b9..eaba8abd53025704c82cbe810bb94110e24a1b6a 100644 (file)
@@ -1,7 +1,24 @@
 <?php
 /**
- * @file src/Module/Owa.php
+ * @copyright Copyright (C) 2010-2022, the Friendica project
+ *
+ * @license GNU AGPL version 3 or any later version
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program.  If not, see <https://www.gnu.org/licenses/>.
+ *
  */
+
 namespace Friendica\Module;
 
 use Friendica\BaseModule;
@@ -11,9 +28,10 @@ use Friendica\Database\DBA;
 use Friendica\Model\Contact;
 use Friendica\Model\OpenWebAuthToken;
 use Friendica\Util\HTTPSignature;
+use Friendica\Util\Strings;
 
 /**
- * @brief OpenWebAuth verifier and token generator
+ * OpenWebAuth verifier and token generator
  *
  * See https://macgirvin.com/wiki/mike/OpenWebAuth/Home
  * Requests to this endpoint should be signed using HTTP Signatures
@@ -26,9 +44,8 @@ use Friendica\Util\HTTPSignature;
  */
 class Owa extends BaseModule
 {
-       public static function init()
+       protected function rawContent(array $request = [])
        {
-
                $ret = [ 'success' => false ];
 
                foreach (['REDIRECT_REMOTE_USER', 'HTTP_AUTHORIZATION'] as $head) {
@@ -58,11 +75,10 @@ class Owa extends BaseModule
                                                        $verified = HTTPSignature::verifyMagic($contact['pubkey']);
 
                                                        if ($verified && $verified['header_signed'] && $verified['header_valid']) {
-                                                               Logger::log('OWA header: ' . print_r($verified, true), Logger::DATA);
-                                                               Logger::log('OWA success: ' . $contact['addr'], Logger::DATA);
+                                                               Logger::debug('OWA header', ['addr' => $contact['addr'], 'data' => $verified]);
 
                                                                $ret['success'] = true;
-                                                               $token = random_string(32);
+                                                               $token = Strings::getRandomHex(32);
 
                                                                // Store the generated token in the databe.
                                                                OpenWebAuthToken::create('owt', 0, $token, $contact['addr']);
@@ -74,17 +90,17 @@ class Owa extends BaseModule
                                                                // At a later time, we will compare weather the token we're getting
                                                                // is really the same token we have stored in the database.
                                                                openssl_public_encrypt($token, $result, $contact['pubkey']);
-                                                               $ret['encrypted_token'] = base64url_encode($result);
+                                                               $ret['encrypted_token'] = Strings::base64UrlEncode($result);
                                                        } else {
-                                                               Logger::log('OWA fail: ' . $contact['id'] . ' ' . $contact['addr'] . ' ' . $contact['url'], Logger::DEBUG);
+                                                               Logger::info('OWA fail', ['id' => $contact['id'], 'addr' => $contact['addr'], 'url' => $contact['url']]);
                                                        }
                                                } else {
-                                                       Logger::log('Contact not found: ' . $handle, Logger::DEBUG);
+                                                       Logger::info('Contact not found', ['handle' => $handle]);
                                                }
                                        }
                                }
                        }
                }
-               System::jsonExit($ret, 'application/x-dfrn+json');
+               System::jsonExit($ret, 'application/x-zot+json');
        }
 }