Support more variations of ActivityPub keyId in signature (#4630)

- Tries to avoid performing HTTP request if the keyId is an actor URI
- Likewise if the URI is a fragment URI on top of actor URI
- Resolves public key, returns owner if the owner links back to the key
This commit is contained in:
Eugen Rochko
2017-08-21 22:57:34 +02:00
committed by GitHub
parent f391a4673a
commit 72bb3e03fd
8 changed files with 60 additions and 7 deletions

View File

@ -20,6 +20,6 @@ class ActivityPub::Activity::Accept < ActivityPub::Activity
end
def target_uri
@target_uri ||= @object['actor']
@target_uri ||= value_or_id(@object['actor'])
end
end

View File

@ -20,6 +20,6 @@ class ActivityPub::Activity::Reject < ActivityPub::Activity
end
def target_uri
@target_uri ||= @object['actor']
@target_uri ||= value_or_id(@object['actor'])
end
end

View File

@ -64,6 +64,6 @@ class ActivityPub::Activity::Undo < ActivityPub::Activity
end
def target_uri
@target_uri ||= @object['object'].is_a?(String) ? @object['object'] : @object['object']['id']
@target_uri ||= value_or_id(@object['object'])
end
end