From 33426a6cd6b46ccb2e567eb84c767bbe55608af9 Mon Sep 17 00:00:00 2001 From: Pierre Hubert Date: Sat, 10 Sep 2022 15:11:12 +0200 Subject: [PATCH] Add CORS --- src/main.rs | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/src/main.rs b/src/main.rs index 134b8db..f279b27 100644 --- a/src/main.rs +++ b/src/main.rs @@ -1,3 +1,4 @@ +use actix_cors::Cors; use actix_web::{App, HttpResponse, HttpServer, Responder, web}; use clap::Parser; use env_logger::Env; @@ -5,7 +6,7 @@ use env_logger::Env; use sea_battle_backend::data::{GameRules, PlayConfiguration}; /// Simple sea battle server -#[derive(Parser, Debug)] +#[derive(Parser, Debug, Clone)] #[clap(author, version, about, long_about = None)] struct Args { /// The address this server will listen to @@ -43,10 +44,20 @@ async fn main() -> std::io::Result<()> { env_logger::Builder::from_env(Env::default().default_filter_or("info")).init(); let args: Args = Args::parse(); + let args_clone = args.clone(); + HttpServer::new(move || { + + let mut cors = Cors::default(); + match args_clone.cors.as_deref() { + Some("*") => cors = cors.allow_any_origin(), + Some(orig) => cors = cors.allowed_origin(orig), + None => {} + } - HttpServer::new(|| { App::new() + .wrap(cors) + .route("/bot/config", web::get().to(bot_configuration)) .route("/random/config", web::get().to(multi_players_config))