* Use OriginalUri for axum ActivityData
When the inbox path is under a nested `Router`, the received request has a URI
with the common prefix stripped. This causes incoming signatures to be considered
invalid since the path is different (see https://github.com/LemmyNet/activitypub-federation-rust/issues/107#issuecomment-2767428107)
This commit uses `OriginalUri` for URI extraction instead, which will retrieve
the full URI regardless of router nesting
* Use router nesting for local_federation
With 8c787f5, router nesting is supported correctly in axum
* Fix docs typo (#143)
---------
Co-authored-by: Zami <szgie@proton.me>
Co-authored-by: Felix Ableitner <me@nutomic.com>
* Fix formatting for nightly rustfmt
https://github.com/LemmyNet/lemmy/issues/3467
* Fix regex error when actix-web feature not enabled
If the crate is built with only the axum feature, compiling the
webfinger account regex will fail with an error "Unicode-aware case
insensitivity matching is not available..." because of the missing
unicode-case feature. This doesn't happen if actix is installed because
it pulls in the regex crate with all features (via [actix-router][0]).
The failure can be demonstrated by reverting this commit's change to
Cargo.toml and running:
cargo test --no-default-features --features=axum --doc extract_webfinger_name
Resolve this by adding the unicode-case feature to the regex dependency.
[0]: 0e8ed50e3a/actix-router/Cargo.toml (L25)
* Remove `actix-rt` and replace with tokio tasks
* Include activity queue test
* Use older `Arc` method
* Refactor to not re-process PEM data on each request
* Add retry queue and spawn tokio tasks directly
* Fix doc error
* Remove semaphore and use join set for backpressure
* Fix debug issue with multiple mailboxes
* First iteration of secure mode federation support
* signing_actor: take request by reference
* Implement secure mode fetch as a global config parameter
* Implement secure mode federation example in actix-web example
* fix clippy lints
* feat: add actix feature flag
* (WIP)feat: add axum feature
* WIP: axum veridy digest + example
Note: this does not compile yet
* WIP
* chore: clippy lints
* Use actix rt for axum example
* ci: run example in CI for both actix and axum
* feat: add json wrapper type for axum
* docs: update readme with actix and axum feature flags
* fix: fix ci
* chore: more clippy lints
* refactor: update according to PR comment and factorize 'verify_digest'