Commit graph

63 commits

Author SHA1 Message Date
Felix Ableitner
b0547e7793 Test that deserialize_one errors on multiple array values 2023-08-09 11:12:30 +02:00
Nutomic
426871f5af
Use anyhow::Error for UrlVerifier return type (fixes #61) (#65)
* Use anyhow::Error for UrlVerifier return type (fixes #61)

* fmt

* uncomment
2023-07-26 10:26:22 -04:00
phiresky
32e3cd5574
make time-zone aware (#62)
* make time-zone aware.

* format and revert debug

* better test log

* empty
2023-07-26 16:17:39 +02:00
Nutomic
b63445afca
Update reqwest_shim.rs (#72) 2023-07-20 10:27:51 -04:00
Samuel Tardieu
02ab897f4f
Fix webfinger fetching non-compliance (#69)
Allow webfinger to use "jrd+json" instead of "activity+json".
Fix #68.
2023-07-18 16:17:21 -04:00
Nutomic
988450c79f
Fix tests (#71) 2023-07-18 16:10:25 -04:00
phiresky
af92e0d532
add shutdown method (#53)
* add shutdown method

* simplify shutdown interface

* make work on rust < 1.70

* upgrade ci to rust 1.70

* make clippy and linux torvalds happy
2023-07-04 16:08:39 +02:00
phiresky
68f9210d4c
add a separate allow_http flag (#54)
Co-authored-by: Nutomic <me@nutomic.com>
2023-07-03 16:24:11 +02:00
Colin Atkinson
d9f1a4414f
Fix regex error when actix-web feature not enabled (#56)
* 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)
2023-07-03 15:05:18 +02:00
phiresky
b64f4a8f3f
fix: make "other" error actually transparent (#51)
* fix: make "other" error actually transparent

* cargo fmt
2023-06-29 10:19:49 +02:00
Nutomic
325f66ba32
Fix HTTP signature expiration (ref #46) (#52) 2023-06-27 09:46:41 +02:00
cetra3
5de4a34550
Add a no limit option to the config (#45)
* Add a no limit option to the config

* Set defaults to `0`
2023-06-22 09:40:59 +02:00
Nutomic
cfcde0dcc4
Retry activity send on connection failure (fixes #41) (#48) 2023-06-22 09:21:06 +02:00
Nutomic
3d9d54cf09
Increase HTTP signature expiration time to one day (fixes #46) (#47) 2023-06-22 09:20:57 +02:00
cetra3
c356265cf4
Remove actix-rt and replace with tokio tasks (#42)
* 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
2023-06-20 11:54:14 +02:00
Alex Auvolat
7b0b830597
Secure mode federation support (WIP) (#39)
* 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
2023-06-12 13:32:54 +02:00
Grafcube
19baec2138
Specify in docs that send_activity takes remote inboxes (#40) 2023-05-31 14:18:36 +02:00
Grafcube
5181f15499
Change domain to host_str (#37) 2023-05-22 10:53:40 +02:00
Felix Ableitner
9df5bd086f Improved logging for activity send 2023-05-04 23:56:27 +02:00
Grafcube
99cdbb5d58
Multi webfinger response (#33)
* Add support for building webfinger for multiple URLs with type

Update `build_webfinger_response` to accept `Vec<(Url, Option<&str>)>`
where `Url` is the ActivityPub ID and `&str` is the optional type.

* Update docs for `build_webfinger_response`

* Update tests to use new `build_webfinger_response`

Tests and docs don't cover usage with some `kind` value.

* Run formatter with nightly

* Revert "Add support for building webfinger for multiple URLs with type"

This reverts commits until 3f70586e63d6f5ae6a9c329ae9e9981da4e2eaaf.
This was a breaking change and should be made into a separate function.

* Add `build_webfinger_response_with_type`

* Construct links separately and update `build_webfinger_response`

- `build_webfinger_response` calls `build_webfinger_response_with_type`.
- Links are constructed in a separate variable.
- Update docs for `build_webfinger_response_with_type` to be clearer
about usage.
- TODO: Use `derive_builder` to simplify function.

* Extract properties into variable

* Remove `other` from docs
2023-04-04 21:56:34 +02:00
Grafcube
813d7943e1
Change username regex in webfinger (#34)
* Change username regex in webfinger

Changes the regex used for username in `extract_webfinger_name` to
include additional characters like '.' and '-'. This is the same regex
used in Mastodon.

* Add link to Mastodon regex
2023-04-02 21:32:54 +02:00
Felix Ableitner
c56f526914 Add signature tests, update dependencies, remove Cargo.lock from git 2023-03-30 21:57:18 +02:00
Felix Ableitner
072353fc41 Dont use apub in type names 2023-03-16 21:41:43 +01:00
Nutomic
6a65fa7c98
Changes to make Lemmy work with 0.4 (#29)
* Make it work with Lemmy

* working but needs cleanup

* almost everything working

* debug

* stack overflow fix
2023-03-16 02:11:48 +01:00
Nutomic
6b3a4f8942
Add verify methods back in, some more fixes (#28) 2023-03-09 22:09:44 +01:00
Felix Ableitner
d94a2ed0fc live federation example 2023-03-08 22:16:43 +01:00
Felix Ableitner
32394696a5 move files 2023-03-06 16:19:43 +01:00
Felix Ableitner
d5ecab1b61 finish rustdoc 2023-03-04 23:20:06 +01:00
Felix Ableitner
19c459fc02 Further improvements 2023-03-02 00:19:10 +01:00
Felix Ableitner
69e77dfa74 Various improvements for usability, examples and docs 2023-02-19 21:26:01 +09:00
Felix Ableitner
5a5c015bfc No default feature, rename to actix-web, merge examples 2023-02-11 22:10:48 +09:00
Nutomic
83ad4bfdc1
Merge handler params into single struct (#25) 2023-02-11 13:32:35 +01:00
Nutomic
6d9682f4e6
Fix deserialize_skip_error function (#24)
https://github.com/serde-rs/serde/issues/1726#issuecomment-577425541
2023-02-04 17:07:13 +01:00
aumetra
463580d734
Restrict the body sizes of responses (#23)
* Add default response body size limit

* Limit all the methods, add reqwest shim that wraps around bytes_stream

* Change image to rust:1.65-bullseye

* Use `DeserializeOwned` instead of the HRTB over `Deserialize`

* Remove the configurability, limit to 100KB

* Add documentation to body size restricted functions

* rustfmt
2023-01-28 04:45:11 +01:00
Paul Delafosse
3220b6b5ca
feat: expose activity pub json wrapped value (#22) 2023-01-25 01:51:41 +01:00
Nutomic
6611debd6b
Remove verify methods (fixes #15) (#21) 2023-01-16 22:54:23 +01:00
Nutomic
d97ff5cee5
Rename http_fetch_retry_limit to http_fetch_limit (was misleading) (#10) 2022-11-28 21:47:48 +00:00
Paul Delafosse
9332c81458
feat: add axum compat (#12)
* 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'
2022-11-28 21:19:56 +00:00
Felix Ableitner
0b603df139 Add some clippy lints 2022-11-24 13:27:38 +01:00
Nutomic
7bc1c4dbd9
Fix date header (#11) 2022-11-23 11:25:08 +00:00
Felix Ableitner
909bc0f2c7 Revert "Rename http_fetch_retry_limit to http_fetch_limit (was misleading)"
This reverts commit 78a86ca835.
2022-11-23 10:59:51 +01:00
Felix Ableitner
78a86ca835 Rename http_fetch_retry_limit to http_fetch_limit (was misleading) 2022-11-22 11:17:36 +01:00
Felix Ableitner
f0cadb20c1 Revert "Rename http_fetch_retry_limit to http_fetch_limit (was misleading)"
This reverts commit dc32b0e94e.
2022-11-22 11:10:08 +01:00
Felix Ableitner
dc32b0e94e Rename http_fetch_retry_limit to http_fetch_limit (was misleading) 2022-11-21 15:39:43 +01:00
Nutomic
f9de5c1b10
Dont retry activity send in case of connection error or HTTP status 4xx (#8) 2022-11-21 14:38:49 +00:00
Nutomic
5d670513d6
Only retry activity sending at most 3 times (#7) 2022-11-21 14:38:39 +00:00
Felix Ableitner
05ad7b2f3a Revert change to take payload in inbox, it wasnt necessary. 2022-11-15 23:18:28 +01:00
Felix Ableitner
11fcb62416 Take dev::Payload for inbox which is more flexible 2022-11-14 16:11:36 +01:00
Nutomic
3a8dd5c6db
In inbox, verify that http signature digest was verified (ref #1) (#6) 2022-11-14 14:23:06 +00:00
Nutomic
da32da5a67
Use enum_delegate crate (#5) 2022-11-14 12:04:36 +00:00