Skip to content

Commit f7d89ed

Browse files
committed
fix(guard): parse gateway bypass query booleans
1 parent 48cc3bb commit f7d89ed

1 file changed

Lines changed: 15 additions & 4 deletions

File tree

engine/packages/guard/src/routing/actor_path.rs

Lines changed: 15 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -229,10 +229,13 @@ fn extract_rvt_params(rvt_params: &[(String, String)]) -> Result<RvtParams> {
229229
}
230230
.build());
231231
}
232-
map.insert(
233-
stripped.to_string(),
234-
serde_json::Value::String(value.clone()),
235-
);
232+
let value = match stripped {
233+
"bypass_connectable" => parse_query_bool(value)
234+
.map(serde_json::Value::Bool)
235+
.unwrap_or_else(|| serde_json::Value::String(value.clone())),
236+
_ => serde_json::Value::String(value.clone()),
237+
};
238+
map.insert(stripped.to_string(), value);
236239
}
237240

238241
serde_json::from_value(serde_json::Value::Object(map)).map_err(|e| {
@@ -243,6 +246,14 @@ fn extract_rvt_params(rvt_params: &[(String, String)]) -> Result<RvtParams> {
243246
})
244247
}
245248

249+
fn parse_query_bool(value: &str) -> Option<bool> {
250+
match value {
251+
"true" | "1" => Some(true),
252+
"false" | "0" => Some(false),
253+
_ => None,
254+
}
255+
}
256+
246257
/// Split a comma-separated key string into components.
247258
/// Missing or empty key yields an empty vec.
248259
fn split_key(raw: Option<&str>) -> Vec<String> {

0 commit comments

Comments
 (0)