GeezerVison is showing github.com — 自动校验参数:解决自定义代码包含 ":" 冒号时可能误判不是语言名称的字符串,导致报错找不到执行引擎 · cloudAndMonkey/APIJSON@53b17ed
File tree
Expand file treeCollapse file tree
Open diff view settings
APIJSONORM/src/main/java/apijson/orm
Expand file treeCollapse file tree
Open diff view settings
Collapse file
Copy file name to clipboardExpand all lines: APIJSONORM/src/main/java/apijson/orm/AbstractVerifier.java +2-2Lines changed: 2 additions & 2 deletions | Original file line number | Diff line number | Diff line change |
|---|
@@ -1237,7 +1237,7 @@ public static <T extends Object> JSONObject parse(@NotNull final RequestMethod m |
1237 | 1237 | String ifStr = (String) _if; |
1238 | 1238 | int ind = ifStr.indexOf(":"); |
1239 | 1239 | String lang = ind < 0 ? null : ifStr.substring(0, ind); |
1240 | | - ScriptEngine engine = getScriptEngine(lang); |
| 1240 | + ScriptEngine engine = getScriptEngine(StringUtil.isName(lang) ? lang : null); |
1241 | 1241 | engine.eval(preCode + "\n" + _if); |
1242 | 1242 | } |
1243 | 1243 | else { |
@@ -1252,7 +1252,7 @@ public static <T extends Object> JSONObject parse(@NotNull final RequestMethod m |
1252 | 1252 | if (v instanceof String) { |
1253 | 1253 | int ind = k.indexOf(":"); |
1254 | 1254 | String lang = ind < 0 ? null : k.substring(0, ind); |
1255 | | - ScriptEngine engine = getScriptEngine(lang); |
| 1255 | + ScriptEngine engine = getScriptEngine(StringUtil.isName(lang) ? lang : null); |
1256 | 1256 | k = ind < 0 ? k : k.substring(ind + 1); |
1257 | 1257 |
|
1258 | 1258 | boolean isElse = StringUtil.isEmpty(k, false); // 其它直接报错,不允许传 StringUtil.isEmpty(k, true) || "ELSE".equals(k); |
|