From 0d9209a74bffff8f9a025cf7fb03d5265293f0b9 Mon Sep 17 00:00:00 2001 From: Hypolite Petovan Date: Tue, 22 Jan 2019 12:15:42 -0500 Subject: [PATCH] Add AP Inbox logging back with config --- config/defaults.config.php | 5 +++++ src/Module/Inbox.php | 12 ++++++++++++ 2 files changed, 17 insertions(+) diff --git a/config/defaults.config.php b/config/defaults.config.php index 90596a8fee..f16bd664cf 100644 --- a/config/defaults.config.php +++ b/config/defaults.config.php @@ -421,4 +421,9 @@ return [ // Must be writable by the ejabberd process. if set then it will prevent the running of multiple processes. 'lockpath' => '', ], + 'debug' => [ + // ap_inbox_log (Boolean) + // Logs every call to /inbox as a JSON file in Friendica's temporary directory + 'ap_inbox_log' => false, + ] ]; diff --git a/src/Module/Inbox.php b/src/Module/Inbox.php index e955f11a36..5fc1b15f1a 100644 --- a/src/Module/Inbox.php +++ b/src/Module/Inbox.php @@ -8,6 +8,7 @@ use Friendica\BaseModule; use Friendica\Protocol\ActivityPub; use Friendica\Core\System; use Friendica\Database\DBA; +use Friendica\Util\HTTPSignature; /** * ActivityPub Inbox @@ -24,6 +25,17 @@ class Inbox extends BaseModule System::httpExit(400); } + if (Config::get('debug', 'ap_inbox_log')) { + if (HTTPSignature::getSigner($postdata, $_SERVER)) { + $filename = 'signed-activitypub'; + } else { + $filename = 'failed-activitypub'; + } + $tempfile = tempnam(get_temppath(), $filename); + file_put_contents($tempfile, json_encode(['argv' => $a->argv, 'header' => $_SERVER, 'body' => $postdata], JSON_UNESCAPED_SLASHES | JSON_UNESCAPED_UNICODE)); + Logger::log('Incoming message stored under ' . $tempfile); + } + if (!empty($a->argv[1])) { $user = DBA::selectFirst('user', ['uid'], ['nickname' => $a->argv[1]]); if (!DBA::isResult($user)) {