0
0
Fork 0

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

@ -98,7 +98,9 @@ module SignatureVerification
if key_id.start_with?('acct:')
ResolveRemoteAccountService.new.call(key_id.gsub(/\Aacct:/, ''))
elsif !ActivityPub::TagManager.instance.local_uri?(key_id)
ActivityPub::FetchRemoteAccountService.new.call(key_id)
account = ActivityPub::TagManager.instance.uri_to_resource(key_id, Account)
account ||= ActivityPub::FetchRemoteKeyService.new.call(key_id)
account
end
end
end