1. fix bugs

topo_dev
xueqingkun 9 months ago
parent 7df5b3de43
commit 845eb6f925

@ -81,6 +81,7 @@ public class CaseAtomicIndexDTO {
}else {
result.setCaseId(this.caseId);
}
result.setIndexId(this.indexId);
result.setCasePersonId(casePersonId);
result.setAtomicId(this.atomicIndexId);
result.setAtomicResult(this.atomicResult);

@ -399,40 +399,6 @@ public class ModelServiceImpl implements ModelService {
}
private boolean checkSql(String sql, List<String> allowedTables) {
if (StringUtils.isEmpty(sql)) {
return false;
}
if (CollUtil.isEmpty(allowedTables)) {
log.info("checkSql:未配置允许的表");
return false;
}
MySqlStatementParser parser = new MySqlStatementParser(sql);
SQLStatement sqlStatement = SqlParserUtil.parseStatement(parser);
if (Objects.isNull(sqlStatement)) {
log.warn("checkSql sql:{}语句解析失败", sql);
return false;
}
String sqlType = SqlParserUtil.detectSQLType(sqlStatement);
if (!"SELECT".equals(sqlType)) {
log.warn("checkSql:只支持查询类型语句");
return false;
}
List<String> tableList = SqlParserUtil.extractTableNames(sqlStatement);
if (CollUtil.isEmpty(tableList)) {
log.warn("checkSql:未检测到表");
return false;
}
long count = tableList.stream().filter(table -> !allowedTables.contains(table)).count();
if (count > 0) {
log.warn("checkSql:表{}不在允许的表列表中", tableList);
return false;
}
return true;
}
/**
*
* 1. 11=100=0

Loading…
Cancel
Save