Commit Graph

20 Commits (3d374ed18be3efc78e48ccd512f7e44f38d2bc7c)

Author SHA1 Message Date
Eugen Rochko 1618b68bfa HTTP signatures ()
* Add Request class with HTTP signature generator

Spec: https://tools.ietf.org/html/draft-cavage-http-signatures-06

* Add HTTP signature verification concern

* Add test for SignatureVerification concern

* Add basic test for Request class

* Make PuSH subscribe/unsubscribe requests use new Request class

Accidentally fix lease_seconds not being set and sent properly, and
change the new minimum subscription duration to 1 day

* Make all PuSH workers use new Request class

* Make Salmon sender use new Request class

* Make FetchLinkService use new Request class

* Make FetchAtomService use the new Request class

* Make Remotable use the new Request class

* Make ResolveRemoteAccountService use the new Request class

* Add more tests

* Allow +-30 seconds window for signed request to remain valid

* Disable time window validation for signed requests, restore 7 days
as PuSH subscription duration (which was previous default due to a bug)
Matt Jankowski 73540ffe6b Clean up for api/base controller ()
* Move ApiController to Api/BaseController

* API controllers inherit from Api::BaseController

* Add coverage for various error cases in api/base controller
Matt Jankowski 83435c49ea Clean up api/subscriptions controller ()
Eugen Rochko bafd22ecf4 Fix - Always respond with 200 to PuSH payloads ()
Fix  - Respond with 201 when Salmon accepted, 400 when unverified
Fix  - Correctly handle confirm_domain? for local accounts
Unify rules for extracting author acct from XML, prefer <email>, fall back
to <name> + <uri> (see also , )
Eugen Rochko fdc17bea58 Fix rubocop issues, introduce usage of frozen literal to improve performance
Eugen Rochko a91c3ef6ce Delegate processing of incoming PuSH data to background workers
Eugen Rochko 68eed8c61f Stop logging incoming Atom
Eugen Rochko f49ed8c819 Log incoming Atom from PuSH
Eugen Rochko 22a8801dbc Adding domain blocks
Eugen Rochko 927333f4f8 Improve code style
Eugen Rochko 1d2856c2af Since GNU Social hubs don't seem to return a hub.lease_seconds param in the subscription confirmation request,
we'll have to default that value to the GS "minimum" (from their code) which is 24 hours.
Eugen Rochko 246330493b More debugging for PuSH confirmations
Eugen Rochko a66d34878c Add more logging to PuSH callback
Eugen Rochko 608a2bfffc Upgrade to PubSubHubbub 0.4 (removing verify_token)
Eugen Rochko 059ebbf48d Separate PuSH subscriptions from following, add mastodon:push:refresh task,
respect hub.lease_seconds (fix )
Eugen Rochko 10ba09f546 Upgrade to Rails 5.0.0.1
Eugen Rochko 2ba6537f52 Escape PuSH challenge and change subscriptions and salmon APIs to text/plain
Eugen Rochko b640f35621 Writing out more tests, fixed some bugs
Eugen Rochko 3b4e04dc32 Fixing some bugs, adding pending test examples
Eugen Rochko 0e8f59c16f Refactoring Grape API methods into normal controllers & other things