diff options
| -rw-r--r-- | Cargo.toml | 2 | ||||
| -rw-r--r-- | src/main.rs | 23 |
2 files changed, 21 insertions, 4 deletions
@@ -16,7 +16,7 @@ serde_json = "1.0" tokio = { version = "1.20", features = ["full"] } tracing = "0.1" tracing-subscriber = { version = "0.3", features = ["env-filter"] } -tower-http = { version = "0.3.4", features = ["trace", "compression-br", "propagate-header", "sensitive-headers"] } +tower-http = { version = "0.3.4", features = ["trace", "cors", "compression-br", "propagate-header", "sensitive-headers"] } sqlx = { version = "0.6", features = [ "runtime-tokio-rustls", "postgres", "chrono", "json" ] } sha256 = "1.0.3" validator = { version = "0.16.0", features = ["derive"] } diff --git a/src/main.rs b/src/main.rs index 39c6738..8706153 100644 --- a/src/main.rs +++ b/src/main.rs @@ -10,14 +10,19 @@ mod routes; use crate::config::CONFIG; use axum::{ handler::Handler, - http::{header, Request}, + http::{header, Method, Request}, routing::get, Router, }; + use std::net::{SocketAddr, ToSocketAddrs}; use std::time::Duration; -use tower_http::sensitive_headers::SetSensitiveHeadersLayer; -use tower_http::{classify::ServerErrorsFailureClass, trace::TraceLayer}; +use tower_http::{ + classify::ServerErrorsFailureClass, + cors::{Any, CorsLayer}, + sensitive_headers::SetSensitiveHeadersLayer, + trace::TraceLayer, +}; use tracing::Span; /// Main application, called by the execution of the software @@ -78,4 +83,16 @@ async fn create_app() -> Router { }, ), ) + .layer( + CorsLayer::new() + .allow_methods([ + Method::OPTIONS, + Method::GET, + Method::POST, + Method::PUT, + Method::DELETE, + ]) + .allow_headers(vec![header::CONTENT_TYPE]) + .allow_origin(Any), + ) } |
