fix: API 数据源信息加密

This commit is contained in:
taojinlong 2022-12-22 19:15:46 +08:00
parent c67a75b17d
commit 62eb13d731
4 changed files with 12 additions and 6 deletions

View File

@ -1,6 +1,8 @@
package io.dataease.controller.datasource;
import com.github.xiaoymin.knife4j.annotations.ApiSupport;
import com.google.common.reflect.TypeToken;
import com.google.gson.Gson;
import io.dataease.auth.annotation.DeLog;
import io.dataease.auth.annotation.DePermission;
import io.dataease.commons.constants.DePermissionType;
@ -27,6 +29,7 @@ import springfox.documentation.annotations.ApiIgnore;
import javax.annotation.Resource;
import java.util.Collection;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
@Api(tags = "数据源:数据源管理")
@ -135,7 +138,9 @@ public class DatasourceController {
@ApiIgnore
@PostMapping("/checkApiDatasource")
public ApiDefinition checkApiDatasource(@RequestBody ApiDefinition apiDefinition) throws Exception {
public ApiDefinition checkApiDatasource(@RequestBody Map<String, String> data) throws Exception {
ApiDefinition apiDefinition = new Gson().fromJson(new String(java.util.Base64.getDecoder().decode(data.get("data"))), new TypeToken<ApiDefinition>() {
}.getType());
return datasourceService.checkApiDatasource(apiDefinition);
}

View File

@ -166,7 +166,7 @@
<el-popover
placement="bottom-end"
:disabled="!attrs.enableParameters"
width="200"
width="420"
>
<div class="view-container-class">
<el-tabs

View File

@ -800,7 +800,7 @@ export default {
data.request = JSON.stringify(data.request)
this.loading = true
this.disabledNext = true
checkApiDatasource(data).then(res => {
checkApiDatasource({'data': Base64.encode(JSON.stringify(data))}).then(res => {
this.loading = false
this.disabledNext = false
this.apiItem.status = 'Success'
@ -858,7 +858,7 @@ export default {
const data = JSON.parse(JSON.stringify(this.apiItem))
data.request = JSON.stringify(data.request)
this.loading = true
checkApiDatasource(data).then(res => {
checkApiDatasource({'data': Base64.encode(JSON.stringify(data))}).then(res => {
this.loading = false
this.$success(i18n.t('commons.success'))
this.apiItem.fields = res.data.fields

View File

@ -734,6 +734,7 @@ import { checkApiDatasource, getSchema } from '@/api/system/datasource'
import ApiHttpRequestForm from '@/views/system/datasource/ApiHttpRequestForm'
import dePwd from '@/components/deCustomCm/DePwd.vue'
import msgCfm from '@/components/msgCfm'
import { Base64 } from 'js-base64'
export default {
name: 'DsConfiguration',
components: {
@ -1069,10 +1070,10 @@ export default {
}
this.$refs.apiItemBasicInfo.validate((valid) => {
if (valid) {
const data = JSON.parse(JSON.stringify(this.apiItem))
const data = Base64.encode(JSON.stringify(this.apiItem))
this.loading = true
this.disabledNext = true
checkApiDatasource(data)
checkApiDatasource({'data': data})
.then((res) => {
this.loading = false
this.disabledNext = false