Add logging for rejected ActivityPub payloads and add tests (#10062)

This commit is contained in:
Eugen Rochko 2019-02-17 03:38:25 +01:00 committed by GitHub
parent 041ff5fa9a
commit 147b4c2c3a
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
5 changed files with 539 additions and 327 deletions

View file

@ -2,9 +2,11 @@
class ActivityPub::Activity::Announce < ActivityPub::Activity
def perform
return reject_payload! if delete_arrived_first?(@json['id']) || !related_to_local_activity?
original_status = status_from_object
return if original_status.nil? || delete_arrived_first?(@json['id']) || !announceable?(original_status) || !related_to_local_activity?
return reject_payload! if original_status.nil? || !announceable?(original_status)
status = Status.find_by(account: @account, reblog: original_status)

View file

@ -2,7 +2,7 @@
class ActivityPub::Activity::Create < ActivityPub::Activity
def perform
return if unsupported_object_type? || invalid_origin?(@object['id']) || Tombstone.exists?(uri: @object['id']) || !related_to_local_activity?
return reject_payload! if unsupported_object_type? || invalid_origin?(@object['id']) || Tombstone.exists?(uri: @object['id']) || !related_to_local_activity?
RedisLock.acquire(lock_options) do |lock|
if lock.acquired?