fix: 无效 Token 导致的 /config 500——getLogin 解析失败返回 None 而非抛异常
- SimApiAuth.getLogin:JSON 无效/非对象时返回 None(视为 token 无效), 不再抛 JsonException(Fail to convert to JsonObject) - 新增 parseLoginItemSafe 私有辅助,删除旧 parseLoginItem - 复现:带无效 Token 的 POST /config 之前 500,现在 200 正常 - 验证:无效/有效 Token、GET/POST /config 均正常,日志无 Fail to convert
This commit is contained in:
@@ -5,15 +5,15 @@ version = 0
|
||||
soulsoft_extensions_options = {version = "1.0.20260528"}
|
||||
redis = {version = "1.0.20260627"}
|
||||
soulsoft_serialization = {version = "1.0.20260528"}
|
||||
soulsoft_web_http = {version = "1.0.20260528"}
|
||||
soulsoft_identity_claims = {version = "1.0.20260528"}
|
||||
soulsoft_web_routing = {version = "1.0.20260528"}
|
||||
soulsoft_extensions_hosting = {version = "1.0.20260528"}
|
||||
soulsoft_extensions_logging = {version = "1.0.20260528"}
|
||||
soulsoft_web_cors = {version = "1.0.20260528"}
|
||||
soulsoft_extensions_hosting = {version = "1.0.20260528"}
|
||||
soulsoft_web_mvc = {version = "1.0.20260528"}
|
||||
soulsoft_extensions_logging = {version = "1.0.20260528"}
|
||||
soulsoft_extensions_logging_console = {version = "1.0.20260528"}
|
||||
soulsoft_extensions_configuration = {version = "1.0.20260528"}
|
||||
soulsoft_web_routing = {version = "1.0.20260528"}
|
||||
soulsoft_extensions_injection = {version = "1.0.20260528"}
|
||||
soulsoft_extensions_logging_configuration = {version = "1.0.20260528"}
|
||||
soulsoft_web_hosting = {version = "1.0.20260528"}
|
||||
soulsoft_web_mvc = {version = "1.0.20260528"}
|
||||
soulsoft_extensions_logging_configuration = {version = "1.0.20260528"}
|
||||
soulsoft_web_http = {version = "1.0.20260528"}
|
||||
|
||||
@@ -157,11 +157,20 @@ public class SimApiAuth {
|
||||
}
|
||||
}
|
||||
return match (json) {
|
||||
case Some(j) => Some(parseLoginItem(j))
|
||||
case Some(j) => parseLoginItemSafe(j)
|
||||
case None => None
|
||||
}
|
||||
}
|
||||
|
||||
/// 解析登录信息;JSON 无效/非对象时返回 None(视为 token 无效,对齐 C# 返回 null)
|
||||
private static func parseLoginItemSafe(json: String): ?SimApiLoginItem {
|
||||
try {
|
||||
Some(JsonSerializer.Deserialize<SimApiLoginItem>(json))
|
||||
} catch (_: Exception) {
|
||||
None
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取某用户全部登录信息。
|
||||
* @param userId 用户 ID。
|
||||
@@ -288,9 +297,4 @@ public class SimApiAuth {
|
||||
// 统一 JSON 序列化:对齐 .NET JsonSerializer.Serialize(item)
|
||||
JsonSerializer.Serialize(item)
|
||||
}
|
||||
|
||||
private static func parseLoginItem(json: String): SimApiLoginItem {
|
||||
// 统一 JSON 反序列化:对齐 .NET JsonSerializer.Deserialize<SimApiLoginItem>(json)
|
||||
JsonSerializer.Deserialize<SimApiLoginItem>(json)
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user