Skip to content

Commit 81acd82

Browse files
committed
[IMP] refine CORS settings architecture and update Cargo.toml
1 parent 61a534b commit 81acd82

4 files changed

Lines changed: 14 additions & 13 deletions

File tree

aw-server/Cargo.toml

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,6 @@ aw-datastore = { path = "../aw-datastore" }
3434
aw-models = { path = "../aw-models" }
3535
aw-transform = { path = "../aw-transform" }
3636
aw-query = { path = "../aw-query" }
37-
regex = "1.12.3"
3837

3938
[target.'cfg(target_os="linux")'.dependencies]
4039
sd-notify = "0.4.2"

aw-server/src/config.rs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -49,10 +49,10 @@ pub struct AWConfig {
4949
pub cors_regex_from_settings: Vec<String>,
5050

5151
#[serde(skip)]
52-
pub allow_aw_chrome_extension_from_settings: Option<bool>,
52+
pub allow_aw_chrome_extension_from_settings: bool,
5353

5454
#[serde(skip)]
55-
pub allow_all_mozilla_extension_from_settings: Option<bool>,
55+
pub allow_all_mozilla_extension_from_settings: bool,
5656

5757
// A mapping of watcher names to paths where the
5858
// custom visualizations are located.
@@ -72,8 +72,8 @@ impl Default for AWConfig {
7272
allow_all_mozilla_extension: default_false(),
7373
cors_from_settings: default_cors(),
7474
cors_regex_from_settings: default_cors(),
75-
allow_aw_chrome_extension_from_settings: None,
76-
allow_all_mozilla_extension_from_settings: None,
75+
allow_aw_chrome_extension_from_settings: default_true(),
76+
allow_all_mozilla_extension_from_settings: default_false(),
7777
custom_static: default_custom_static(),
7878
}
7979
}

aw-server/src/endpoints/cors.rs

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -14,15 +14,11 @@ pub fn cors(config: &AWConfig) -> rocket_cors::Cors {
1414
allowed_regex_origins.extend(config.cors_regex_from_settings.clone());
1515

1616
// Settings-based flags override file-based config flags
17-
let allow_chrome = config.allow_aw_chrome_extension_from_settings
18-
.unwrap_or(config.allow_aw_chrome_extension);
19-
if allow_chrome {
17+
if config.allow_aw_chrome_extension_from_settings {
2018
allowed_regex_origins.push("chrome-extension://nglaklhklhcoonedhgnpgddginnjdadi".to_string());
2119
}
2220

23-
let allow_mozilla = config.allow_all_mozilla_extension_from_settings
24-
.unwrap_or(config.allow_all_mozilla_extension);
25-
if allow_mozilla {
21+
if config.allow_all_mozilla_extension_from_settings {
2622
allowed_regex_origins.push("moz-extension://.*".to_string());
2723
}
2824

@@ -31,6 +27,7 @@ pub fn cors(config: &AWConfig) -> rocket_cors::Cors {
3127
"http://127.0.0.1:27180".to_string(),
3228
"http://localhost:27180".to_string(),
3329
]);
30+
allowed_regex_origins.push("chrome-extension://.*".to_string());
3431
}
3532

3633
let allowed_origins = AllowedOrigins::some(&allowed_exact_origins, &allowed_regex_origins);
@@ -40,6 +37,7 @@ pub fn cors(config: &AWConfig) -> rocket_cors::Cors {
4037
.collect();
4138
let allowed_headers = AllowedHeaders::all(); // TODO: is this unsafe?
4239

40+
// You can also deserialize this
4341
rocket_cors::CorsOptions {
4442
allowed_origins,
4543
allowed_methods,

aw-server/src/endpoints/mod.rs

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -159,10 +159,14 @@ pub fn build_rocket(server_state: ServerState, mut config: AWConfig) -> rocket::
159159
config.cors_regex_from_settings = parse_cors_list(raw);
160160
}
161161
if let Ok(raw) = db.get_key_value("settings.allow_aw_chrome_extension") {
162-
config.allow_aw_chrome_extension_from_settings = parse_bool(raw);
162+
if let Some(val) = parse_bool(raw) {
163+
config.allow_aw_chrome_extension_from_settings = val;
164+
}
163165
}
164166
if let Ok(raw) = db.get_key_value("settings.allow_all_mozilla_extension") {
165-
config.allow_all_mozilla_extension_from_settings = parse_bool(raw);
167+
if let Some(val) = parse_bool(raw) {
168+
config.allow_all_mozilla_extension_from_settings = val;
169+
}
166170
}
167171
} // lock released here
168172
let cors = cors::cors(&config);

0 commit comments

Comments
 (0)