sign all AP requests

We have been attempting unsigned GET requests and then if they fail,
sending another signed request within the same loop.

This not only causes single-threaded instances to fail, confusing new
users, but is also unnecessary, since servers that don't require
requests to be signed will just ignore the signed headers.

Signing all AP requests simplifies things and should see a
marginal increase in speed when interacting with new servers
that require signed payloads.
This commit is contained in:
Hugh Rundle 2024-09-09 09:46:04 +10:00
parent cbdb59d3cf
commit 9c89e0fbaf
No known key found for this signature in database
GPG key ID: A7E35779918253F9

View file

@ -369,17 +369,13 @@ def resolve_remote_id(
# load the data and create the object
try:
data = get_data(remote_id)
data = get_activitypub_data(remote_id)
except ConnectionError:
logger.info("Could not connect to host for remote_id: %s", remote_id)
return None
except requests.HTTPError as e:
if (e.response is not None) and e.response.status_code == 401:
# This most likely means it's a mastodon with secure fetch enabled.
data = get_activitypub_data(remote_id)
else:
logger.info("Could not connect to host for remote_id: %s", remote_id)
return None
logger.info("Could not connect to host for remote_id: %s", remote_id)
return None
# determine the model implicitly, if not provided
# or if it's a model with subclasses like Status, check again
if not model or hasattr(model.objects, "select_subclasses"):