| | |
| | | |
| | | /** |
| | | * SQL注入过滤 |
| | | * |
| | | * @param str 待验证的字符串 |
| | | */ |
| | | public static String sqlInject(String str){ |
| | |
| | | |
| | | return str; |
| | | } |
| | | |
| | | /** |
| | | * SQL注入过滤 |
| | | * |
| | | * @param orgStr 待验证的字符串 |
| | | */ |
| | | public static String sqlInject2(String orgStr) { |
| | | if (StringUtils.isBlank(orgStr)) { |
| | | return null; |
| | | } |
| | | //转换成小写 |
| | | String str = new String(orgStr.toLowerCase()); |
| | | |
| | | //非法字符 |
| | | String[] keywords = {";", "master", "truncate", "insert", "select", "delete", "update", "declare", "alter", "drop"}; |
| | | |
| | | //判断是否包含非法字符 |
| | | for (String keyword : keywords) { |
| | | if (str.indexOf(keyword) != -1) { |
| | | throw new RRException("包含非法字符"); |
| | | } |
| | | } |
| | | |
| | | return str; |
| | | } |
| | | } |
| | |
| | | @Operation(summary = "创建指标数据集") |
| | | @PreAuthorize("@ss.hasPermission('data:ind-data-set:create')") |
| | | public CommonResult<Boolean> create(@Valid @RequestBody IndDataSetSaveReqVO createReqVO) { |
| | | SQLFilter.sqlInject(createReqVO.getQuerySql()); |
| | | SQLFilter.sqlInject2(createReqVO.getQuerySql()); |
| | | indDataSetService.create(createReqVO); |
| | | return success(true); |
| | | } |
| | |
| | | @Operation(summary = "修改指标数据集") |
| | | @PreAuthorize("@ss.hasPermission('data:ind-data-set:update')") |
| | | public CommonResult<Boolean> update(@Valid @RequestBody IndDataSetSaveReqVO updateReqVO) { |
| | | SQLFilter.sqlInject(updateReqVO.getQuerySql()); |
| | | SQLFilter.sqlInject2(updateReqVO.getQuerySql()); |
| | | indDataSetService.update(updateReqVO); |
| | | return success(true); |
| | | } |
| | |
| | | log.warn("数据源不能为空"); |
| | | return null; |
| | | } |
| | | SQLFilter.sqlInject(dto.getSelectSql()); |
| | | SQLFilter.sqlInject(dto.getViewSql()); |
| | | SQLFilter.sqlInject(dto.getWhereSql()); |
| | | SQLFilter.sqlInject(dto.getGroupSql()); |
| | | SQLFilter.sqlInject(dto.getGroupSql()); |
| | | SQLFilter.sqlInject2(dto.getSelectSql()); |
| | | SQLFilter.sqlInject2(dto.getViewSql()); |
| | | SQLFilter.sqlInject2(dto.getWhereSql()); |
| | | SQLFilter.sqlInject2(dto.getGroupSql()); |
| | | SQLFilter.sqlInject2(dto.getGroupSql()); |
| | | DataContextHolder.setDataSourceId(Long.valueOf(dto.getDataSource())); |
| | | return baseDao.getSourceValue(dto); |
| | | } |
| | |
| | | @Operation(summary = "创建计划数据集") |
| | | @PreAuthorize("@ss.hasPermission('data:plan-data-set:create')") |
| | | public CommonResult<Boolean> create(@Valid @RequestBody PlanDataSetSaveReqVO createReqVO) { |
| | | SQLFilter.sqlInject(createReqVO.getQuerySql()); |
| | | SQLFilter.sqlInject2(createReqVO.getQuerySql()); |
| | | indDataSetService.create(createReqVO); |
| | | return success(true); |
| | | } |
| | |
| | | @Operation(summary = "修改计划数据集") |
| | | @PreAuthorize("@ss.hasPermission('data:plan-data-set:update')") |
| | | public CommonResult<Boolean> update(@Valid @RequestBody PlanDataSetSaveReqVO updateReqVO) { |
| | | SQLFilter.sqlInject(updateReqVO.getQuerySql()); |
| | | SQLFilter.sqlInject2(updateReqVO.getQuerySql()); |
| | | indDataSetService.update(updateReqVO); |
| | | return success(true); |
| | | } |
| | |
| | | |
| | | import com.iailab.framework.tenant.core.context.DataContextHolder; |
| | | import com.iailab.module.data.common.utils.DateUtils; |
| | | import com.iailab.module.data.common.xss.SQLFilter; |
| | | import com.iailab.module.data.plan.data.entity.PlanDataSetEntity; |
| | | import com.iailab.module.data.plan.data.service.PlanDataSetService; |
| | | import com.iailab.module.data.plan.item.entity.PlanItemEntity; |
| | |
| | | return null; |
| | | } |
| | | Map<String, Object> params = getSqlParams(dataSet, startTime, endTime); |
| | | SQLFilter.sqlInject2(dataSet.getQuerySql()); |
| | | DataContextHolder.setDataSourceId(Long.valueOf(dataSet.getDataSource())); |
| | | List<PlanItemDataVO> dataList = planItemService.getSourceValue(params); |
| | | |