diff --git a/Cargo.lock b/Cargo.lock index 1708a42..c9ff0b1 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1069,12 +1069,13 @@ checksum = "e6d5a32815ae3f33302d95fdcb2ce17862f8c65363dcfd29360480ba1001fc9c" [[package]] name = "futures" -version = "0.3.28" +version = "0.3.29" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "23342abe12aba583913b2e62f22225ff9c950774065e4bfb61a19cd9770fec40" +checksum = "da0290714b38af9b4a7b094b8a37086d1b4e61f2df9122c3cad2577669145335" dependencies = [ "futures-channel", "futures-core", + "futures-executor", "futures-io", "futures-sink", "futures-task", @@ -1083,9 +1084,9 @@ dependencies = [ [[package]] name = "futures-channel" -version = "0.3.28" +version = "0.3.29" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "955518d47e09b25bbebc7a18df10b81f0c766eaf4c4f1cccef2fca5f2a4fb5f2" +checksum = "ff4dd66668b557604244583e3e1e1eada8c5c2e96a6d0d6653ede395b78bbacb" dependencies = [ "futures-core", "futures-sink", @@ -1093,15 +1094,15 @@ dependencies = [ [[package]] name = "futures-core" -version = "0.3.28" +version = "0.3.29" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4bca583b7e26f571124fe5b7561d49cb2868d79116cfa0eefce955557c6fee8c" +checksum = "eb1d22c66e66d9d72e1758f0bd7d4fd0bee04cad842ee34587d68c07e45d088c" [[package]] name = "futures-executor" -version = "0.3.28" +version = "0.3.29" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ccecee823288125bd88b4d7f565c9e58e41858e47ab72e8ea2d64e93624386e0" +checksum = "0f4fb8693db0cf099eadcca0efe2a5a22e4550f98ed16aba6c48700da29597bc" dependencies = [ "futures-core", "futures-task", @@ -1121,9 +1122,9 @@ dependencies = [ [[package]] name = "futures-io" -version = "0.3.28" +version = "0.3.29" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4fff74096e71ed47f8e023204cfd0aa1289cd54ae5430a9523be060cdb849964" +checksum = "8bf34a163b5c4c52d0478a4d757da8fb65cabef42ba90515efee0f6f9fa45aaa" [[package]] name = "futures-lite" @@ -1142,9 +1143,9 @@ dependencies = [ [[package]] name = "futures-macro" -version = "0.3.28" +version = "0.3.29" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "89ca545a94061b6365f2c7355b4b32bd20df3ff95f02da9329b34ccc3bd6ee72" +checksum = "53b153fd91e4b0147f4aced87be237c98248656bb01050b96bf3ee89220a8ddb" dependencies = [ "proc-macro2", "quote", @@ -1153,21 +1154,21 @@ dependencies = [ [[package]] name = "futures-sink" -version = "0.3.28" +version = "0.3.29" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f43be4fe21a13b9781a69afa4985b0f6ee0e1afab2c6f454a8cf30e2b2237b6e" +checksum = "e36d3378ee38c2a36ad710c5d30c2911d752cb941c00c72dbabfb786a7970817" [[package]] name = "futures-task" -version = "0.3.28" +version = "0.3.29" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "76d3d132be6c0e6aa1534069c705a74a5997a356c0dc2f86a47765e5617c5b65" +checksum = "efd193069b0ddadc69c46389b740bbccdd97203899b48d09c5f7969591d6bae2" [[package]] name = "futures-util" -version = "0.3.28" +version = "0.3.29" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "26b01e40b772d54cf6c6d721c1d1abd0647a0106a12ecaa1c186273392a69533" +checksum = "a19526d624e703a3179b3d322efec918b6246ea0fa51d41124525f00f1cc8104" dependencies = [ "futures-channel", "futures-core", @@ -2621,6 +2622,7 @@ dependencies = [ "dotenv", "entity", "envy", + "futures", "futures-util", "jsonwebtoken", "migration", diff --git a/Cargo.toml b/Cargo.toml index 1b40851..85ee93a 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -33,6 +33,7 @@ async-trait = "0.1.73" tokio-util = { version = "0.7.9", features = ["io"] } dotenv = "0.15.0" tower-http = { version = "0.4.4", features = ["cors"] } +futures = "0.3.29" [workspace] members = [".", "entity", "migration"] diff --git a/src/main.rs b/src/main.rs index 5f79faa..55a7c43 100644 --- a/src/main.rs +++ b/src/main.rs @@ -2,10 +2,12 @@ use std::{fmt::Debug, net::SocketAddr, sync::mpsc}; use axum::{ extract::DefaultBodyLimit, - http::{HeaderName, Method, StatusCode}, + http::StatusCode, routing::{get, post}, Router, }; +use futures::executor::block_on; + use extractors::SubdomainModel; use services::cors::CorsService; use tower_http::cors::{AllowHeaders, AllowMethods, AllowOrigin, CorsLayer}; @@ -70,10 +72,6 @@ async fn main() { CorsLayer::new() .allow_methods(AllowMethods::any()) .allow_headers(AllowHeaders::any()) - .allow_origin(AllowOrigin::any()) - /* CorsLayer::new() - .allow_methods(AllowMethods::list([Method::GET, Method::POST, Method::OPTIONS])) - .allow_headers(AllowHeaders::list([HeaderName::from_static("x-subdomain")])) .allow_origin(AllowOrigin::predicate(move |origin, parts| { let cloned_state = cloned_state.clone(); let cloned_origin = origin @@ -84,7 +82,8 @@ async fn main() { let cloned_headers = parts.headers.clone(); let (tx, rx) = mpsc::channel(); - tokio::spawn(async move { + std::thread::spawn( + move || block_on(async move { tracing::info!("Starting cors!"); let subdomain_model_extractor = SubdomainModel::from_headers(&cloned_headers, &cloned_state) @@ -106,10 +105,11 @@ async fn main() { .unwrap_or(false); tx.send(res).ok(); - }); + } + )); rx.recv().unwrap_or(false) - })), */ + })) ) .with_state(state.clone());