* Fix handling of malformed ActivityPub payloads when URIs are nil
* Gracefully handle JSON-LD canonicalization failures
end
def local_uri?(uri)
+ return false if uri.nil?
+
uri = Addressable::URI.parse(uri)
host = uri.normalized_host
host = "#{host}:#{uri.port}" if uri.port
end
def uri_to_resource(uri, klass)
+ return if uri.nil?
+
if local_uri?(uri)
case klass.name
when 'Account'
end
def trustworthy_attribution?(uri, attributed_to)
+ return false if uri.nil? || attributed_to.nil?
Addressable::URI.parse(uri).normalized_host.casecmp(Addressable::URI.parse(attributed_to).normalized_host).zero?
end
def verify_account!
@account = ActivityPub::LinkedDataSignature.new(@json).verify_account!
+ rescue JSON::LD::JsonLdError => e
+ Rails.logger.debug "Could not verify LD-Signature for #{value_or_id(@json['actor'])}: #{e.message}"
+ nil
end
end