-
-
Notifications
You must be signed in to change notification settings - Fork 267
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Fix federation with GoToSocial and inconsistent KeyId in headers #2812
Commits on Apr 10, 2023
-
Don't assume user id is key id minus fragment
Fixes bookwyrm-social#2801 Related to bookwyrm-social#2794 It is legitimate to use any url for the user's key id. We have been assuming this id is the user id plus a fragment (#key-id) but this is not always the case, notably in the case of GoToSocial it is at /key-id. This commit instead checks the remote user's information to see if the key id listed matches the key id of the message allegedly received from them. Whilst troubleshooting this it also became apparent that there is a mismatch between Bookwyrm users' keyId and the KeyId we claim to be using in signed requests (there is a forward slash missing). Since everything after the slash is a fragment, this usually slips through but we should be consistent so I updated that.
Configuration menu - View commit details
-
Copy full SHA for 632e384 - Browse repository at this point
Copy the full SHA 632e384View commit details -
Configuration menu - View commit details
-
Copy full SHA for 49758f2 - Browse repository at this point
Copy the full SHA 49758f2View commit details -
Configuration menu - View commit details
-
Copy full SHA for e112718 - Browse repository at this point
Copy the full SHA e112718View commit details -
Allow for tag value to be object
Previously the 'tag' value in an activitypub object was assumed to be a List (array). Some AP software sends 'tag' as a Dict (object) if there is only a single tag value. It's somewhat debatable whether this is spec compliant but we should aim to be robust. This commit puts an individual mention tag inside a list if necessary.
Configuration menu - View commit details
-
Copy full SHA for ef85394 - Browse repository at this point
Copy the full SHA ef85394View commit details -
Include initial '@' in mention tag name
GoToSocial expects the 'name' value of a mention tag to have an initial '@' symbol. Mastodon doesn't seem to mind either way.
Configuration menu - View commit details
-
Copy full SHA for c9dcd4f - Browse repository at this point
Copy the full SHA c9dcd4fView commit details
Commits on Apr 11, 2023
-
Use correct keyId with legacy fallback
Bookwyrm keyIds are at `userpath/#main-key`, however when signing AP objects we have claimed in the headers that the keyId is at `userpath#main-key`. This is incorrect, and makes GoToSocial's strict checking break. Simply updating the signatures to use the correct KeyId breaks legacy Bookwyrm's signature checks, becuase it assumes that the keyId path is the same as the user path plus a fragment. This commit allows for either option, by sending the request a second time with the incorrect keyId if sending with the correct one causes an error.
Configuration menu - View commit details
-
Copy full SHA for 03f21b0 - Browse repository at this point
Copy the full SHA 03f21b0View commit details -
Configuration menu - View commit details
-
Copy full SHA for 279fa38 - Browse repository at this point
Copy the full SHA 279fa38View commit details -
Configuration menu - View commit details
-
Copy full SHA for c450947 - Browse repository at this point
Copy the full SHA c450947View commit details
Commits on Apr 13, 2023
-
fix incoming GTS mentions and DMs
GoToSocial sends 'tag' values as a single object if there is only one user mentioned, rather than an array with an object inside it. This causes Bookwyrm to reject the tag since it comes through as a dict rather than a list. This commit fixes this at the point the incoming AP object is transformed so that "mention" tags are turned into a mention_user.
Configuration menu - View commit details
-
Copy full SHA for e3261c6 - Browse repository at this point
Copy the full SHA e3261c6View commit details -
Configuration menu - View commit details
-
Copy full SHA for a667671 - Browse repository at this point
Copy the full SHA a667671View commit details -
Configuration menu - View commit details
-
Copy full SHA for c7adb62 - Browse repository at this point
Copy the full SHA c7adb62View commit details -
Configuration menu - View commit details
-
Copy full SHA for 56a062d - Browse repository at this point
Copy the full SHA 56a062dView commit details -
Configuration menu - View commit details
-
Copy full SHA for 123628c - Browse repository at this point
Copy the full SHA 123628cView commit details
Commits on Apr 14, 2023
-
Configuration menu - View commit details
-
Copy full SHA for 8a8af4e - Browse repository at this point
Copy the full SHA 8a8af4eView commit details -
Configuration menu - View commit details
-
Copy full SHA for 9872658 - Browse repository at this point
Copy the full SHA 9872658View commit details -
Configuration menu - View commit details
-
Copy full SHA for a0b7112 - Browse repository at this point
Copy the full SHA a0b7112View commit details