fix(config): auto complete and patch secret field when loading config

- Ensure the 'secret' field is present and non-empty during config loading
- Auto-fill with default value if missing to improve compatibility and security
- Update config guard logic for robustness
This commit is contained in:
Tunglies
2025-05-28 17:26:26 +08:00
parent c507c483fb
commit 9416de6442
3 changed files with 26 additions and 12 deletions

View File

@@ -20,6 +20,12 @@ impl IClashTemp {
map.insert(key.clone(), template.0.get(key).unwrap().clone());
}
});
// 确保 secret 字段存在且不为空
if let Some(Value::String(s)) = map.get_mut("secret") {
if s.is_empty() {
*s = "set-your-secret".to_string();
}
}
Self(Self::guard(map))
}
Err(err) => {
@@ -64,7 +70,7 @@ impl IClashTemp {
]
.into(),
);
map.insert("secret".into(), "".into());
map.insert("secret".into(), "set-your-secret".into());
map.insert("tun".into(), tun.into());
map.insert("external-controller-cors".into(), cors_map.into());
map.insert("unified-delay".into(), true.into());