From 7aabb9661ec18b5cadf12c4c275e26449817d760 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mina=20Gali=C4=87?= Date: Sun, 24 May 2020 20:27:39 +0200 Subject: [PATCH] upgrade webfinger everywhere, and implement async --- Cargo.lock | 75 ++++++++++++++++++---------------------- plume-models/Cargo.toml | 2 +- src/routes/well_known.rs | 14 ++++---- 3 files changed, 41 insertions(+), 50 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 777f02f5..4a2aa0a0 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -31,7 +31,7 @@ version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "65608fdeae5eb05485d5b71a3d2242d76b2b7413608c196d47eb4dff3eed7b85" dependencies = [ - "proc-macro2 1.0.15", + "proc-macro2 1.0.17", "quote 1.0.6", "syn 1.0.23", ] @@ -160,7 +160,7 @@ version = "0.1.31" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "26c4f3195085c36ea8d24d32b2f828d23296a9370a28aa39d111f6f16bef9f3b" dependencies = [ - "proc-macro2 1.0.15", + "proc-macro2 1.0.17", "quote 1.0.6", "syn 1.0.23", ] @@ -324,7 +324,7 @@ dependencies = [ "lazycell", "log 0.4.8", "peeking_take_while", - "proc-macro2 1.0.15", + "proc-macro2 1.0.17", "quote 1.0.6", "regex", "rustc-hash", @@ -692,9 +692,9 @@ checksum = "ef8ae57c4978a2acd8b869ce6b9ca1dfe817bff704c220209fdef2c0b75a01b9" [[package]] name = "data-encoding" -version = "2.2.0" +version = "2.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "11c0346158a19b3627234e15596f5e465c360fcdb97d817bcb255e0510f5a788" +checksum = "72aa14c04dfae8dd7d8a2b1cb7ca2152618cd01336dbfe704b8dcbf8d41dbd69" [[package]] name = "dbghelp-sys" @@ -766,7 +766,7 @@ version = "0.3.0" source = "git+https://github.com/SergioBenitez/Devise.git?rev=e58b3ac9a#e58b3ac9afc3b6ff10a8aaf02a3e768a8f530089" dependencies = [ "bitflags 1.2.1", - "proc-macro2 1.0.15", + "proc-macro2 1.0.17", "quote 1.0.6", "syn 1.0.23", ] @@ -804,7 +804,7 @@ version = "1.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "45f5098f628d02a7a0f68ddba586fb61e80edec3bdc1be3b921f4ceec60858d3" dependencies = [ - "proc-macro2 1.0.15", + "proc-macro2 1.0.17", "quote 1.0.6", "syn 1.0.23", ] @@ -968,7 +968,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d371106cc88ffdfb1eabd7111e432da544f16f3e2d7bf1dfe8bf575f1df045cd" dependencies = [ "backtrace 0.3.48", - "version_check 0.9.1", + "version_check 0.9.2", ] [[package]] @@ -998,7 +998,7 @@ version = "0.1.8" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "aa4da3c766cd7a0db8242e326e9e4e081edd567072893ed320008189715366a4" dependencies = [ - "proc-macro2 1.0.15", + "proc-macro2 1.0.17", "quote 1.0.6", "syn 1.0.23", "synstructure", @@ -1199,7 +1199,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d0b5a30a4328ab5473878237c447333c093297bded83a4983d10f4deea240d39" dependencies = [ "proc-macro-hack 0.5.15", - "proc-macro2 1.0.15", + "proc-macro2 1.0.17", "quote 1.0.6", "syn 1.0.23", ] @@ -1850,7 +1850,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9753f12909fd8d923f75ae5c3258cae1ed3c8ec052e1b38c93c21a6d157f789c" dependencies = [ "migrations_internals", - "proc-macro2 1.0.15", + "proc-macro2 1.0.17", "quote 1.0.6", "syn 1.0.23", ] @@ -2067,7 +2067,7 @@ checksum = "0b471253da97532da4b61552249c521e01e736071f71c1a4f7ebbfbf0a06aad6" dependencies = [ "lexical-core", "memchr", - "version_check 0.9.1", + "version_check 0.9.2", ] [[package]] @@ -2200,9 +2200,9 @@ checksum = "77af24da69f9d9341038eba93a073b1fdaaa1b788221b00a69bce9e762cb32de" [[package]] name = "openssl-sys" -version = "0.9.56" +version = "0.9.57" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f02309a7f127000ed50594f0b50ecc69e7c654e16d41b4e8156d1b3df8e0b52e" +checksum = "7410fef80af8ac071d4f63755c0ab89ac3df0fd1ea91f1d1f37cf5cec4395990" dependencies = [ "autocfg 1.0.0", "cc", @@ -2396,7 +2396,7 @@ version = "0.4.17" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e58db2081ba5b4c93bd6be09c40fd36cb9193a8336c384f3b40012e531aa7e40" dependencies = [ - "proc-macro2 1.0.15", + "proc-macro2 1.0.17", "quote 1.0.6", "syn 1.0.23", ] @@ -2474,7 +2474,7 @@ dependencies = [ "tokio", "validator", "validator_derive", - "webfinger 0.5.0 (git+https://github.com/Plume-org/webfinger?rev=4e8f12810c4a7ba7a07bbcb722cd265fdff512b6)", + "webfinger", ] [[package]] @@ -2581,7 +2581,7 @@ dependencies = [ "tokio", "url 2.1.1", "walkdir", - "webfinger 0.5.0 (git+https://github.com/Plume-org/webfinger?rev=update-deps)", + "webfinger", "whatlang", ] @@ -2662,9 +2662,9 @@ dependencies = [ [[package]] name = "proc-macro2" -version = "1.0.15" +version = "1.0.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "70a50b9351bfa8d65a7d93ce712dc63d2fd15ddbf2c36990fc7cac344859c04f" +checksum = "1502d12e458c49a4c9cbff560d0fe0060c252bc29799ed94ca2ed4bb665a0101" dependencies = [ "unicode-xid 0.2.0", ] @@ -2735,7 +2735,7 @@ version = "1.0.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "54a21852a652ad6f610c9510194f398ff6f8692e334fd1145fed931f7fbe44ea" dependencies = [ - "proc-macro2 1.0.15", + "proc-macro2 1.0.17", ] [[package]] @@ -3042,7 +3042,7 @@ dependencies = [ "time", "tokio", "toml", - "version_check 0.9.1", + "version_check 0.9.2", "yansi 0.5.0", ] @@ -3055,7 +3055,7 @@ dependencies = [ "indexmap", "quote 1.0.6", "rocket_http", - "version_check 0.9.1", + "version_check 0.9.2", "yansi 0.5.0", ] @@ -3290,7 +3290,7 @@ version = "1.0.110" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "818fbf6bfa9a42d3bfcaca148547aa00c7b915bec71d1757aa2d44ca68771984" dependencies = [ - "proc-macro2 1.0.15", + "proc-macro2 1.0.17", "quote 1.0.6", "syn 1.0.23", ] @@ -3350,7 +3350,7 @@ checksum = "83695fde96cbe9e08f0e4eb96b1b56fdbd44f2098ee27462dda964c7745fddc7" dependencies = [ "bitflags 1.2.1", "itertools", - "proc-macro2 1.0.15", + "proc-macro2 1.0.17", "quote 1.0.6", "syn 1.0.23", ] @@ -3363,7 +3363,7 @@ checksum = "e63e6744142336dfb606fe2b068afa2e1cca1ee6a5d8377277a92945d81fa331" dependencies = [ "bitflags 1.2.1", "itertools", - "proc-macro2 1.0.15", + "proc-macro2 1.0.17", "quote 1.0.6", "syn 1.0.23", ] @@ -3513,7 +3513,7 @@ checksum = "f0f45ed1b65bf9a4bf2f7b7dc59212d1926e9eaf00fa998988e420fd124467c6" dependencies = [ "phf_generator", "phf_shared", - "proc-macro2 1.0.15", + "proc-macro2 1.0.17", "quote 1.0.6", "string_cache_shared", ] @@ -3591,7 +3591,7 @@ version = "1.0.23" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "95b5f192649e48a5302a13f2feb224df883b98933222369e4b3b0fe2a5447269" dependencies = [ - "proc-macro2 1.0.15", + "proc-macro2 1.0.17", "quote 1.0.6", "unicode-xid 0.2.0", ] @@ -3611,7 +3611,7 @@ version = "0.12.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "67656ea1dc1b41b1451851562ea232ec2e5a80242139f7e679ceccfb5d61f545" dependencies = [ - "proc-macro2 1.0.15", + "proc-macro2 1.0.17", "quote 1.0.6", "syn 1.0.23", "unicode-xid 0.2.0", @@ -3869,7 +3869,7 @@ version = "2.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "50f37be617794602aabbeee0be4f259dc1778fabe05e2d67ee8f79326d5cb4f6" dependencies = [ - "version_check 0.9.1", + "version_check 0.9.2", ] [[package]] @@ -4035,9 +4035,9 @@ checksum = "914b1a6776c4c929a602fafd8bc742e06365d4bcbe48c30f9cca5824f70dc9dd" [[package]] name = "version_check" -version = "0.9.1" +version = "0.9.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "078775d0255232fb988e6fccf26ddc9d1ac274299aaedcedce21c6f72cc533ce" +checksum = "b5a972e5669d67ba988ce3dc826706fb0a8b01471c088cb0b6110b805cc36aed" [[package]] name = "void" @@ -4093,7 +4093,7 @@ dependencies = [ "bumpalo", "lazy_static", "log 0.4.8", - "proc-macro2 1.0.15", + "proc-macro2 1.0.17", "quote 1.0.6", "syn 1.0.23", "wasm-bindgen-shared", @@ -4127,7 +4127,7 @@ version = "0.2.62" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8eb197bd3a47553334907ffd2f16507b4f4f01bbec3ac921a7719e0decdfe72a" dependencies = [ - "proc-macro2 1.0.15", + "proc-macro2 1.0.17", "quote 1.0.6", "syn 1.0.23", "wasm-bindgen-backend", @@ -4160,15 +4160,6 @@ dependencies = [ "serde", ] -[[package]] -name = "webfinger" -version = "0.5.0" -source = "git+https://github.com/Plume-org/webfinger?rev=update-deps#cdaab95ed54765cdd70c61c39f9d2d19348472a9" -dependencies = [ - "reqwest", - "serde", -] - [[package]] name = "whatlang" version = "0.7.3" diff --git a/plume-models/Cargo.toml b/plume-models/Cargo.toml index fb49cfd6..4e449355 100644 --- a/plume-models/Cargo.toml +++ b/plume-models/Cargo.toml @@ -25,7 +25,7 @@ tantivy = "0.10.1" tokio = "0.2" url = "2.1" walkdir = "2.2" -webfinger = { git = "https://github.com/Plume-org/webfinger", rev = "update-deps" } +webfinger = { git = "https://github.com/Plume-org/webfinger", rev = "4e8f12810c4a7ba7a07bbcb722cd265fdff512b6", features = ["async"] } whatlang = "0.7.1" shrinkwraprs = "0.3" diesel-derive-newtype = "0.1.2" diff --git a/src/routes/well_known.rs b/src/routes/well_known.rs index fe1c7e19..bf5a27b2 100644 --- a/src/routes/well_known.rs +++ b/src/routes/well_known.rs @@ -69,9 +69,9 @@ impl AsyncResolver for WebfingerResolver { Prefix::Custom(_) => Err(ResolverError::NotFound), } } - async fn endpoint( + async fn endpoint + Send>( &self, - resource: impl Into + 'async_trait, + resource: R, resource_repo: PlumeRocket, ) -> Result { let resource = resource.into(); @@ -82,10 +82,8 @@ impl AsyncResolver for WebfingerResolver { let mut parsed_res = res.splitn(2, '@'); let user = parsed_res.next().ok_or(ResolverError::InvalidResource)?; let domain = parsed_res.next().ok_or(ResolverError::InvalidResource)?; - if domain == webfinger.instance_domain() { - webfinger - .find(res_prefix, user.to_string(), resource_repo) - .await + if domain == self.instance_domain().await { + self.find(res_prefix, user.to_string(), resource_repo).await } else { Err(ResolverError::WrongDomain) } @@ -94,7 +92,9 @@ impl AsyncResolver for WebfingerResolver { #[get("/.well-known/webfinger?")] pub async fn webfinger(resource: String, rockets: PlumeRocket) -> Content { - match WebfingerResolver::endpoint(resource, rockets) + let wf_resolver = WebfingerResolver; + match wf_resolver + .endpoint(resource, rockets) .await .and_then(|wf| serde_json::to_string(&wf).map_err(|_| ResolverError::NotFound)) {