Remove double-query for signed query strings (#34610)

This commit is contained in:
Claire 2025-05-05 15:13:08 +02:00
parent 86a8aa5e5c
commit e6a6c26c36
3 changed files with 4 additions and 19 deletions

View file

@ -37,20 +37,7 @@ class ActivityPub::FetchRepliesService < BaseService
return unless @allow_synchronous_requests
return if non_matching_uri_hosts?(@account.uri, collection_or_uri)
# NOTE: For backward compatibility reasons, Mastodon signs outgoing
# queries incorrectly by default.
#
# While this is relevant for all URLs with query strings, this is
# the only code path where this happens in practice.
#
# Therefore, retry with correct signatures if this fails.
begin
fetch_resource_without_id_validation(collection_or_uri, nil, true)
rescue Mastodon::UnexpectedResponseError => e
raise unless e.response && e.response.code == 401 && Addressable::URI.parse(collection_or_uri).query.present?
fetch_resource_without_id_validation(collection_or_uri, nil, true, request_options: { omit_query_string: false })
end
fetch_resource_without_id_validation(collection_or_uri, nil, true)
end
def filtered_replies