Tracking the State HTTP Signature Route Aliases across Implementations #1054
Labels
No labels
approved, awaiting change
broken setup
bug
cannot reproduce
configuration
documentation
duplicate
enhancement
extremely low priority
feature request
Fix it yourself
help wanted
invalid
mastodon_api
needs change/feedback
needs docs
needs tests
not a bug
not our bug
planned
pleroma_api
privacy
question
static_fe
triage
wontfix
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
AkkomaGang/akkoma#1054
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
With things having evolved since, this is kind of a successor to #731
There are two reasons why we curretnly allow route aliases when verifying signatures. First the query string confusion stemming from a historic long-standing Mastodon bug. Second a hardcoded extra set of aliases for frontend display URLs due to similar historic bugs Pleroma and Mastodon where they forg*t to resign when encountering redirects while fetching.
We likely won’t be able to completely get rid of the first one in the near future. However, we might if adoption improves eventually want to switch our prefernce order and reconsider how we sign our own outgoing requests.
But the second one is only relevant for manual fetches/searches when both the fetching instance is buggy wrt to redirects and the fetching user mistakenly copied the browser URL instead of using the "copy link" button (which in akko-fe now always prefers the canonical ID since AkkomaGang/akkoma-fe#459). Meaning once correctly resigning on redirects is sufficiently common we could drop this set of aliases (they incur extra cost since generating them requires a database lookup unlike the query-param aliases).
Handling of redirects per implementation
Correctly re-signs
snarfed/bridgy-fed@8bd4192553/activitypub.py (L914))Unknown
Broken; doesn’t re-sign
Handling of query parameters per implementation
(last updated in January 2026)
Prefers with query-params; allows both for incoming
Unconditionally uses query-params for outgoing
Iceshrimp.Backend/Core/Federation/Cryptography/HttpSignature.cs)alemidev/upub@d57fbb7696; has config options to toggle prefernce, but never a retry mechanism; before this commit only accepted with query-params)Has retry mechansim to use query-less if with-query-params fails for outgoing
Prefers without query-params; allows both for incoming
Unconditionally uses query-less for outgoing
Has retry mechanism to use with-query if query-less fails for outgoing
Only accepts without query params
(none known)
Only accepts with query params
(none known)
Unknown