From 1082b89b6107c5db904b8e33f7b4bd2bf2d386e6 Mon Sep 17 00:00:00 2001 From: Tangel Date: Sun, 26 Nov 2023 12:36:56 +0800 Subject: [PATCH] dev --- Cargo.toml | 22 +++++++++++----------- src/fetch/mod.rs | 8 ++++---- src/http_signatures.rs | 21 ++++++++++++--------- 3 files changed, 27 insertions(+), 24 deletions(-) diff --git a/Cargo.toml b/Cargo.toml index c7ef9f3..a0bee78 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -10,22 +10,22 @@ documentation = "https://docs.rs/activitypub_federation/" [dependencies] chrono = { version = "0.4.31", features = ["clock"], default-features = false } -serde = { version = "1.0.189", features = ["derive"] } +serde = { version = "1.0.193", features = ["derive"] } async-trait = "0.1.74" -url = { version = "2.4.1", features = ["serde"] } -serde_json = { version = "1.0.107", features = ["preserve_order"] } +url = { version = "2.5.0", features = ["serde"] } +serde_json = { version = "1.0.108", features = ["preserve_order"] } reqwest = { version = "0.11.22", features = ["json", "stream"] } -reqwest-middleware = "0.2.3" +reqwest-middleware = "0.2.4" tracing = "0.1.40" base64 = "0.21.5" -openssl = "0.10.57" +openssl = "0.10.60" once_cell = "1.18.0" -http = "0.2.9" +http = "0.2.11" sha2 = "0.10.8" thiserror = "1.0.50" derive_builder = "0.12.0" -itertools = "0.11.0" -dyn-clone = "1.0.14" +itertools = "0.12.0" +dyn-clone = "1.0.16" enum_delegate = "0.2.0" httpdate = "1.0.3" http-signature-normalization-reqwest = { version = "0.10.0", default-features = false, features = [ @@ -35,14 +35,14 @@ http-signature-normalization-reqwest = { version = "0.10.0", default-features = ] } http-signature-normalization = "0.7.0" bytes = "1.5.0" -futures-core = { version = "0.3.28", default-features = false } +futures-core = { version = "0.3.29", default-features = false } pin-project-lite = "0.2.13" activitystreams-kinds = "0.3.0" regex = { version = "1.10.2", default-features = false, features = [ "std", "unicode-case", ] } -tokio = { version = "1.33.0", features = [ +tokio = { version = "1.34.0", features = [ "sync", "rt", "rt-multi-thread", @@ -69,7 +69,7 @@ axum = ["dep:axum", "dep:tower", "dep:hyper"] [dev-dependencies] anyhow = "1.0.75" rand = "0.8.5" -env_logger = "0.10.0" +env_logger = "0.10.1" tower-http = { version = "*", features = ["map-request-body", "util"] } axum = { git = "https://github.com/tokio-rs/axum.git", rev = "30afe97e99303fffc4bf2f411a93022b5bc1ba35", features = [ "http1", diff --git a/src/fetch/mod.rs b/src/fetch/mod.rs index 4a0d502..2704545 100644 --- a/src/fetch/mod.rs +++ b/src/fetch/mod.rs @@ -63,10 +63,10 @@ async fn fetch_object_http_with_accept( config.verify_url_valid(url).await?; info!("Fetching remote object {}", url.to_string()); - let counter = data.request_counter.fetch_add(1, Ordering::SeqCst); - if counter > config.http_fetch_limit { - return Err(Error::RequestLimit); - } + // let counter = data.request_counter.fetch_add(1, Ordering::SeqCst); + // if counter > config.http_fetch_limit { + // return Err(Error::RequestLimit); + // } let req = config .client diff --git a/src/http_signatures.rs b/src/http_signatures.rs index b33306d..59d1d48 100644 --- a/src/http_signatures.rs +++ b/src/http_signatures.rs @@ -15,7 +15,10 @@ use crate::{ use base64::{engine::general_purpose::STANDARD as Base64, Engine}; use bytes::Bytes; use http::{header::HeaderName, uri::PathAndQuery, HeaderValue, Method, Uri}; -use http_signature_normalization_reqwest::prelude::{Config, SignExt}; +use http_signature_normalization_reqwest::{ + prelude::{Config, SignExt}, + DefaultSpawner, +}; use once_cell::sync::Lazy; use openssl::{ hash::MessageDigest, @@ -83,7 +86,8 @@ pub(crate) async fn sign_request( private_key: PKey, http_signature_compat: bool, ) -> Result { - static CONFIG: Lazy = Lazy::new(|| Config::new().set_expiration(EXPIRES_AFTER)); + static CONFIG: Lazy> = + Lazy::new(|| Config::new().set_expiration(EXPIRES_AFTER)); static CONFIG_COMPAT: Lazy = Lazy::new(|| { Config::new() .mastodon_compat() @@ -209,13 +213,12 @@ fn verify_signature_inner( Ok(verifier.verify(&base64_decoded)?) })?; - Ok(()) - // if verified { - // debug!("verified signature for {}", uri); - // Ok(()) - // } else { - // Err(ActivitySignatureInvalid) - // } + if verified { + debug!("verified signature for {}", uri); + Ok(()) + } else { + Err(ActivitySignatureInvalid) + } } #[derive(Clone, Debug)]