Handle CORS

This commit is contained in:
Sebastian H. Gabrielli 2023-12-26 21:01:36 +01:00
parent 603b57b303
commit e7cbe25602
3 changed files with 53 additions and 2 deletions

37
Cargo.lock generated
View File

@ -1783,6 +1783,7 @@ version = "0.1.0"
dependencies = [ dependencies = [
"futures", "futures",
"rocket", "rocket",
"rocket_cors",
"sea-orm", "sea-orm",
"serde", "serde",
] ]
@ -1804,6 +1805,23 @@ dependencies = [
"version_check", "version_check",
] ]
[[package]]
name = "rocket_cors"
version = "0.6.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "cfac3a1df83f8d4fc96aa41dba3b86c786417b7fc0f52ec76295df2ba781aa69"
dependencies = [
"http",
"log",
"regex",
"rocket",
"serde",
"serde_derive",
"unicase",
"unicase_serde",
"url",
]
[[package]] [[package]]
name = "rocket_http" name = "rocket_http"
version = "0.5.0" version = "0.5.0"
@ -2782,6 +2800,25 @@ dependencies = [
"version_check", "version_check",
] ]
[[package]]
name = "unicase"
version = "2.7.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f7d2d4dafb69621809a81864c9c1b864479e1235c0dd4e199924b9742439ed89"
dependencies = [
"version_check",
]
[[package]]
name = "unicase_serde"
version = "0.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "6ef53697679d874d69f3160af80bc28de12730a985d57bdf2b47456ccb8b11f1"
dependencies = [
"serde",
"unicase",
]
[[package]] [[package]]
name = "unicode-bidi" name = "unicode-bidi"
version = "0.3.14" version = "0.3.14"

View File

@ -10,3 +10,4 @@ rocket = {version = "0.5.0", features = ["json"] }
serde = { version = "1.0", features = ["derive"] } serde = { version = "1.0", features = ["derive"] }
sea-orm = { version = "^0.12.0", features = [ "sqlx-sqlite", "runtime-tokio-native-tls", "macros", "mock" ] } sea-orm = { version = "^0.12.0", features = [ "sqlx-sqlite", "runtime-tokio-native-tls", "macros", "mock" ] }
futures = "0.3.28" futures = "0.3.28"
rocket_cors = "0.6.0"

View File

@ -1,12 +1,21 @@
// Webserver // Webserver
#[macro_use] extern crate rocket; #[macro_use] extern crate rocket;
mod database;
// Import the data models
pub mod models; pub mod models;
// Import the database setup
mod database;
use database::set_up_db; use database::set_up_db;
// Import the member functions
mod webserver_member; mod webserver_member;
use webserver_member::*; use webserver_member::*;
// Handle CORS
use rocket_cors::{AllowedOrigins, CorsOptions};
// Serve the very exiting main page
#[get("/")] #[get("/")]
fn index() -> &'static str { fn index() -> &'static str {
"Hello, world!\nNothing useful is served here." "Hello, world!\nNothing useful is served here."
@ -19,8 +28,12 @@ async fn rocket() -> _ {
Err(err) => panic!("{}", err) Err(err) => panic!("{}", err)
}; };
let cors = CorsOptions::default().allowed_origins(AllowedOrigins::all())
.to_cors().unwrap();
rocket::build() rocket::build()
.manage(db) .manage(db)
.attach(cors)
.mount("/", routes![ .mount("/", routes![
index, index,
get_member_by_id, get_member_by_id,