From 0ae5b603ee111809f075838f82a70537997639a5 Mon Sep 17 00:00:00 2001 From: Diogo Cordeiro Date: Thu, 2 Aug 2018 02:34:08 +0100 Subject: [PATCH] Add debug info to Notice Grabber --- ActivityPubPlugin.php | 4 ++-- classes/Activitypub_notice.php | 18 ++++++++++++++---- 2 files changed, 16 insertions(+), 6 deletions(-) diff --git a/ActivityPubPlugin.php b/ActivityPubPlugin.php index 0fa11c0..37c3fbd 100755 --- a/ActivityPubPlugin.php +++ b/ActivityPubPlugin.php @@ -109,7 +109,7 @@ class ActivityPubPlugin extends Plugin common_debug('ActivityPubPlugin Notice Grabber: '.$candidate->getUrl(). ' is different of '.$url); } } catch (Exception $e) { - common_debug('ActivityPubPlugin Notice Grabber: failed to find: '.$url. 'offline.'); + common_debug('ActivityPubPlugin Notice Grabber: failed to find: '.$url.' offline.'); } } @@ -147,7 +147,7 @@ class ActivityPubPlugin extends Plugin $settings ); } catch (Exception $e) { - common_debug('ActivityPubPlugin Notice Grabber: failed to find: '.$url. 'online.'); + common_debug('ActivityPubPlugin Notice Grabber: failed to find: '.$url.' online.'); throw $e; } diff --git a/classes/Activitypub_notice.php b/classes/Activitypub_notice.php index c06a58a..0981fc2 100755 --- a/classes/Activitypub_notice.php +++ b/classes/Activitypub_notice.php @@ -207,24 +207,34 @@ class Activitypub_notice extends Managed_DataObject */ public static function validate_remote_notice($data) { + if (!isset($data->attributedTo)) { + common_debug('ActivityPub Notice Validator: Rejected because attributedTo was not specified.'); + throw new Exception('No attributedTo specified.'); + } if (!isset($data->id)) { + common_debug('ActivityPub Notice Validator: Rejected because Object ID was not specified.'); throw new Exception('Object ID not specified.'); } elseif (!filter_var($data->id, FILTER_VALIDATE_URL)) { + common_debug('ActivityPub Notice Validator: Rejected because Object ID is invalid.'); throw new Exception('Invalid Object ID.'); } - if ($data->type !== 'Note') { + if (!isset($data->type) || $data->type !== 'Note') { + common_debug('ActivityPub Notice Validator: Rejected because of Type.'); throw new Exception('Invalid Object type.'); } if (!isset($data->content)) { + common_debug('ActivityPub Notice Validator: Rejected because Content was not specified.'); throw new Exception('Object content was not specified.'); } if (!isset($data->url)) { - throw new Exception('Object url was not specified.'); + throw new Exception('Object URL was not specified.'); } elseif (!filter_var($data->url, FILTER_VALIDATE_URL)) { + common_debug('ActivityPub Notice Validator: Rejected because Object URL is invalid.'); throw new Exception('Invalid Object URL.'); } - if (!isset($data->to)) { - throw new Exception('Object To was not specified.'); + if (!isset($data->cc)) { + common_debug('ActivityPub Notice Validator: Rejected because Object CC was not specified.'); + throw new Exception('Object CC was not specified.'); } return true; }