From 9662daabda7970fca695dcad51759ccb984204e0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=97=AD=E6=97=AD?= Date: Thu, 6 Apr 2023 17:11:47 +0800 Subject: [PATCH 1/6] =?UTF-8?q?REPORT-91727=20=E5=AF=B9=E7=94=A8=E6=88=B7?= =?UTF-8?q?=E8=BE=93=E5=85=A5=E7=9A=84=E5=8F=82=E6=95=B0=E8=BF=9B=E8=A1=8C?= =?UTF-8?q?=E7=BB=9F=E4=B8=80=E6=A0=A1=E9=AA=8C=20feat=EF=BC=9Adcm?= =?UTF-8?q?=E4=BB=93=E5=BA=93=E9=87=8C=E9=9D=A2=E6=9C=89=E4=B8=A4=E4=B8=AA?= =?UTF-8?q?=E5=9C=BA=E6=99=AF=EF=BC=8C=E8=BF=99=E9=87=8C=E5=BC=95=E5=85=A5?= =?UTF-8?q?=E8=BF=9B=E6=9D=A5=E8=A1=A5=E5=85=85?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../checkIllegalStrings.ts | 44 +++++++++++++++++++ .../core/checkIllegalStrings/constant.ts | 15 +++++++ src/modules/core/index.ts | 1 + .../connection/list/list_item/list_item.ts | 12 +++++ src/modules/pages/maintain/forms/form.ts | 7 +++ 5 files changed, 79 insertions(+) create mode 100644 src/modules/core/checkIllegalStrings/checkIllegalStrings.ts create mode 100644 src/modules/core/checkIllegalStrings/constant.ts create mode 100644 src/modules/core/index.ts diff --git a/src/modules/core/checkIllegalStrings/checkIllegalStrings.ts b/src/modules/core/checkIllegalStrings/checkIllegalStrings.ts new file mode 100644 index 0000000..696d8fb --- /dev/null +++ b/src/modules/core/checkIllegalStrings/checkIllegalStrings.ts @@ -0,0 +1,44 @@ +/* + https://work.fineres.com/browse/REPORT-91724 用于参数统一校验 + */ +import { ILLEGAL_STRINGS } from "./constant"; +export type CheckResult = { + legal: boolean, + errorMsg: string, +} +export const CHECK_CORRECT: CheckResult = { + legal: true, + errorMsg: "", +}; + +/** + * 检测非法字符,返回错误提示 + * @param value 要校验的字符串 + */ +export function checkIllegalStrings(value: string): CheckResult { + // 后端传入的校验开关,如果没传,那也默认开启 + const enabled = Dec.system.enableParameterVerify ?? true; + if (enabled) { + const illegalStringIndex = ILLEGAL_STRINGS.findIndex(s => value.includes(s)); + if (illegalStringIndex === -1) { + return CHECK_CORRECT; + } + + return { + legal: false, + errorMsg: `${BI.i18nText("Dec-Basic_Check_Illegal_Strings")}${ILLEGAL_STRINGS[illegalStringIndex]}`, + }; + } + + return CHECK_CORRECT; +} + +export function checkIllegalStringsInWidgetAndShowError(widget: any) { + const value = widget.getValue(); + const result = checkIllegalStrings(value); + if (!result.legal) { + widget.showError(result.errorMsg); + } + + return result.legal; +} diff --git a/src/modules/core/checkIllegalStrings/constant.ts b/src/modules/core/checkIllegalStrings/constant.ts new file mode 100644 index 0000000..a034a3f --- /dev/null +++ b/src/modules/core/checkIllegalStrings/constant.ts @@ -0,0 +1,15 @@ +/** + * 参数检验的非法字符数组 + */ +export const ILLEGAL_STRINGS = [ + "\"", + "<", + ">", + "&", + "/script", + "javascript:", + "onblur", + "getRuntime", + "ProcessBuilder", + "java.lang.ProcessImpl", +]; diff --git a/src/modules/core/index.ts b/src/modules/core/index.ts new file mode 100644 index 0000000..efe056c --- /dev/null +++ b/src/modules/core/index.ts @@ -0,0 +1 @@ +export { checkIllegalStringsInWidgetAndShowError, checkIllegalStrings } from "./checkIllegalStrings/checkIllegalStrings" diff --git a/src/modules/pages/connection/list/list_item/list_item.ts b/src/modules/pages/connection/list/list_item/list_item.ts index 60736d3..e61114c 100644 --- a/src/modules/pages/connection/list/list_item/list_item.ts +++ b/src/modules/pages/connection/list/list_item/list_item.ts @@ -7,6 +7,7 @@ import { connectionCanEdit, getTextByDatabaseType, getChartLength } from '../../ import { testConnection } from '../../../maintain/forms/form.server'; import { DownListCombo, Label, SignEditor } from '@fui/core'; import { ApiFactory } from '../../../../crud/apiFactory'; +import { checkIllegalStrings } from "@core/index"; const api = new ApiFactory().create(); @@ -89,6 +90,17 @@ export class ListItem extends BI.BasicButton { return; } + const result = checkIllegalStrings(newName); + if (!result.legal) { + BI.Msg.toast(result.errorMsg, { + level: 'error', + }); + this.store.setIsEdit(false, name); + this.nameLabel.setText(name); + this.nameEditor.setValue(name); + + return; + } this.store.changeName(name, newName).then(re => { this.store.setIsEdit(false, name); if (re.errorCode) { diff --git a/src/modules/pages/maintain/forms/form.ts b/src/modules/pages/maintain/forms/form.ts index 609b880..4039f81 100644 --- a/src/modules/pages/maintain/forms/form.ts +++ b/src/modules/pages/maintain/forms/form.ts @@ -8,6 +8,7 @@ import { ConnectionJDBC, Connection, ResultType } from 'src/modules/crud/crud.ty import { DEFAULT_JNDI_DATA, DEFAULT_JDBC_POOL, DATEBASE_FILTER_TYPE } from '@constants/constant'; import { getJdbcDatabaseType, getChartLength } from '../../../app.service'; import { NAME_MAX_LENGTH } from '../../../app.constant'; +import { checkIllegalStrings } from "@core/index"; @shortcut() @store(MaintainFormModel) @@ -209,6 +210,12 @@ export class MaintainForm extends BI.Widget { if (this.form.validation && !this.form.validation()) { return false; } + const result = checkIllegalStrings(value.connectionName); + if (!result.legal) { + this.setFromError(result.errorMsg); + + return false; + } return true; } From 93f297c6143b970f247c39f83cd96915843893eb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=97=AD=E6=97=AD?= Date: Tue, 11 Apr 2023 15:43:53 +0800 Subject: [PATCH 2/6] =?UTF-8?q?REPORT-93628=E3=80=90=E8=BF=AD=E4=BB=A3?= =?UTF-8?q?=E3=80=91=E3=80=90=E5=B9=B3=E5=8F=B0=E8=A7=86=E8=A7=89=E9=80=82?= =?UTF-8?q?=E9=85=8D=E3=80=91=E6=95=B0=E6=8D=AE=E8=BF=9E=E6=8E=A5=E7=AE=A1?= =?UTF-8?q?=E7=90=86-=E4=BF=AE=E6=94=B9=E4=B8=8B=E5=AF=86=E7=A0=81?= =?UTF-8?q?=E5=A4=84=E7=9A=84=E8=A7=86=E8=A7=89=E5=B1=95=E7=A4=BA=20fix:?= =?UTF-8?q?=20=E5=85=B6=E5=AE=9E=E9=80=82=E9=85=8D6.0=E7=9A=84=E6=94=B9?= =?UTF-8?q?=E5=8A=A8=E4=B8=8D=E6=B6=89=E5=8F=8A=E6=95=B0=E6=8D=AE=E8=BF=9E?= =?UTF-8?q?=E6=8E=A5=E9=83=A8=E5=88=86=E3=80=82=20=E4=BD=86=E6=98=AF?= =?UTF-8?q?=E4=B8=BB=E9=A3=8E=E6=A0=BC=E6=94=B9=E4=B8=BA=E8=BE=93=E5=85=A5?= =?UTF-8?q?=E6=A1=86border-bottom=E9=A3=8E=E6=A0=BC=E4=BA=86=EF=BC=8C?= =?UTF-8?q?=E9=82=A3=E4=B9=88=E8=BF=99=E9=87=8C=E4=B9=9F=E9=9C=80=E8=A6=81?= =?UTF-8?q?=E5=90=8C=E6=AD=A5=E6=94=B9=E4=B8=80=E4=B8=8B=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/modules/pages/maintain/forms/components/form.jdbc.ts | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/modules/pages/maintain/forms/components/form.jdbc.ts b/src/modules/pages/maintain/forms/components/form.jdbc.ts index 7db6718..5f88a0f 100644 --- a/src/modules/pages/maintain/forms/components/form.jdbc.ts +++ b/src/modules/pages/maintain/forms/components/form.jdbc.ts @@ -423,7 +423,7 @@ export class FormJdbc extends BI.Widget { { type: BI.Editor.xtype, $value: 'password', - cls: 'bi-border bi-border-radius', + cls: 'bi-border-bottom', width: EDITOR_WIDTH, height: EDITOR_HEIGHT, allowBlank: true, @@ -715,7 +715,7 @@ export class FormJdbc extends BI.Widget { { type: BI.Editor.xtype, $value: 'temporary-file-pieces-limit', - cls: 'bi-border bi-border-radius', + cls: 'bi-border-bottom', width: EDITOR_WIDTH, height: EDITOR_HEIGHT, allowBlank: true, @@ -735,7 +735,7 @@ export class FormJdbc extends BI.Widget { { type: BI.Editor.xtype, $value: 'temporary-file-size-limit', - cls: 'bi-border bi-border-radius', + cls: 'bi-border-bottom', width: EDITOR_WIDTH, height: EDITOR_HEIGHT, allowBlank: true, @@ -801,7 +801,7 @@ export class FormJdbc extends BI.Widget { { type: BI.Editor.xtype, $value: 'hdfs-connection-address', - cls: 'bi-border bi-border-radius', + cls: 'bi-border-bottom', width: EDITOR_WIDTH, height: EDITOR_HEIGHT, allowBlank: true, From 7e3dabb31659f4eee6c3d06982fdcc1f88bfd13a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=97=AD=E6=97=AD?= Date: Tue, 11 Apr 2023 16:12:39 +0800 Subject: [PATCH 3/6] =?UTF-8?q?REPORT-93627=E3=80=90=E8=BF=AD=E4=BB=A3?= =?UTF-8?q?=E3=80=91=E3=80=90=E5=B9=B3=E5=8F=B0=E8=A7=86=E8=A7=89=E9=80=82?= =?UTF-8?q?=E9=85=8D=E3=80=91=E6=95=B0=E6=8D=AE=E8=BF=9E=E6=8E=A5=E7=AE=A1?= =?UTF-8?q?=E7=90=86-=E6=A8=A1=E5=BC=8F=E9=80=89=E6=8B=A9=E5=A4=84?= =?UTF-8?q?=E6=9C=89=E6=BB=9A=E5=8A=A8=E6=9D=A1=20fix:=20=E5=B9=B6?= =?UTF-8?q?=E9=9D=9E=E8=BF=99=E6=AC=A1=E8=BF=AD=E4=BB=A3=E5=AF=BC=E8=87=B4?= =?UTF-8?q?=EF=BC=8C=E4=B9=8B=E5=89=8D=E5=B0=B1=E6=9C=89=E9=97=AE=E9=A2=98?= =?UTF-8?q?=E3=80=82=20=E8=B0=83=E6=95=B4=E4=B8=80=E4=B8=8B=E9=97=B4?= =?UTF-8?q?=E8=B7=9D=E7=9A=84=E8=AE=BE=E7=BD=AE=E5=A4=A7=E5=B0=8F=EF=BC=8C?= =?UTF-8?q?=E9=98=B2=E6=AD=A2=E6=8C=A4=E5=87=BA=E6=BB=9A=E5=8A=A8=E6=9D=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/modules/pages/maintain/forms/components/form.jdbc.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/modules/pages/maintain/forms/components/form.jdbc.ts b/src/modules/pages/maintain/forms/components/form.jdbc.ts index 5f88a0f..28aa75f 100644 --- a/src/modules/pages/maintain/forms/components/form.jdbc.ts +++ b/src/modules/pages/maintain/forms/components/form.jdbc.ts @@ -573,6 +573,7 @@ export class FormJdbc extends BI.Widget { forms: [ { type: BI.VerticalLayout.xtype, + height: 55, items: [ { type: BI.FloatLeftLayout.xtype, @@ -595,9 +596,9 @@ export class FormJdbc extends BI.Widget { }, { type: BI.TextValueCombo.xtype, + _tgap: 15, $value: 'schema', width: EDITOR_WIDTH, - tgap: 15, disabled: true, value: schema, items: schema ? [{ text: schema, value: schema }] : [], From 23b901b251afc5eaf5f8f12e7b08115c47d703fe Mon Sep 17 00:00:00 2001 From: "Austin.Duan" Date: Tue, 11 Apr 2023 17:32:58 +0800 Subject: [PATCH 4/6] =?UTF-8?q?=E6=97=A0JIRA=E4=BB=BB=E5=8A=A1=EF=BC=8C?= =?UTF-8?q?=E9=A1=BA=E5=B8=A6=E5=A4=84=E7=90=86=E4=B8=8B=E6=95=B0=E6=8D=AE?= =?UTF-8?q?=E8=BF=9E=E6=8E=A5=E6=A0=B7=E5=BC=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/modules/components/test_status/tip_icon/tip_fail.ts | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/src/modules/components/test_status/tip_icon/tip_fail.ts b/src/modules/components/test_status/tip_icon/tip_fail.ts index f8a77f3..c943248 100644 --- a/src/modules/components/test_status/tip_icon/tip_fail.ts +++ b/src/modules/components/test_status/tip_icon/tip_fail.ts @@ -54,8 +54,7 @@ export class TipFail extends BI.Widget { }], }, { type: BI.Label.xtype, - height: 14, - bgap: 10, + _bgap: 10, text: tipText, ref:(_ref:Label)=>{ this.failText=_ref; @@ -63,12 +62,12 @@ export class TipFail extends BI.Widget { }, { type: BI.VerticalAdaptLayout.xtype, - hgap: 5, + _hgap: 12, items: [ { type: BI.Button.xtype, text: BI.i18nText('Dec-Dcm_Connection_Detailed_Information'), - level: 'ignore', + clear: true, ref: (_ref: Button) => { this.detailButton = _ref; }, @@ -79,8 +78,8 @@ export class TipFail extends BI.Widget { }, { type: BI.Button.xtype, + light: true, text: BI.i18nText('Dec-Dcm_Back'), - level: 'ignore', handler: () => { this.fireEvent(TipFail.EVENT_CLOSE); }, From b44835ef906bf44999f9a9d8c0b7c6bb539f9ef2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=97=AD=E6=97=AD?= Date: Wed, 12 Apr 2023 10:37:01 +0800 Subject: [PATCH 5/6] =?UTF-8?q?REPORT-93628=20fix=EF=BC=9A=E4=BF=AE?= =?UTF-8?q?=E6=94=B9=E4=B8=8B=E6=96=87=E4=BB=B6=E4=B8=8A=E4=BC=A0=E7=9A=84?= =?UTF-8?q?=E7=BB=84=E4=BB=B6=E6=A0=B7=E5=BC=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/modules/components/file_chooser/file_chooser.ts | 2 +- src/modules/components/file_upload/file_upload.ts | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/src/modules/components/file_chooser/file_chooser.ts b/src/modules/components/file_chooser/file_chooser.ts index 634cfdb..dc430d1 100644 --- a/src/modules/components/file_chooser/file_chooser.ts +++ b/src/modules/components/file_chooser/file_chooser.ts @@ -41,7 +41,7 @@ export class FileChooser extends BI.Widget { items: [ { type: BI.SignEditor.xtype, - cls: 'bi-border bi-focus-shadow', + cls: 'bi-border-bottom bi-focus-shadow', width, height: 22, watermark, diff --git a/src/modules/components/file_upload/file_upload.ts b/src/modules/components/file_upload/file_upload.ts index 01892c0..9a4f62f 100644 --- a/src/modules/components/file_upload/file_upload.ts +++ b/src/modules/components/file_upload/file_upload.ts @@ -59,7 +59,7 @@ export class FileUpload extends BI.Widget { items: [ { type: BI.SignEditor.xtype, - cls: 'bi-border bi-focus-shadow', + cls: 'bi-border-bottom bi-focus-shadow', width: 300, height: 22, watermark, @@ -144,9 +144,9 @@ export class FileUpload extends BI.Widget { this.fileModified = _ref; }, }] - + }], - + }, tgap: 14, lgap: 4, @@ -155,7 +155,7 @@ export class FileUpload extends BI.Widget { type: BI.IconButton.xtype, cls: "default-delete-font", handler: function () { - NProgress.set(0.0); + NProgress.set(0.0); self.xhr.abort(); self.store.setFileName(''); self.clearInfo(); From f89124a76dc9f847150d4d656d59c3d9daae0dae Mon Sep 17 00:00:00 2001 From: "Austin.Duan" Date: Thu, 13 Apr 2023 15:16:12 +0800 Subject: [PATCH 6/6] =?UTF-8?q?REPORT-93847=20fix=EF=BC=9A=20=E6=95=B0?= =?UTF-8?q?=E6=8D=AE=E8=BF=9E=E6=8E=A5=E6=A0=B7=E5=BC=8F=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/modules/components/test_status/tip_icon/tip_fail.ts | 2 +- src/modules/pages/connection/connection.ts | 1 - src/modules/title/title_database/title_datebase.ts | 5 +++-- src/modules/title/title_maintain/title_maintain.ts | 7 ++++--- 4 files changed, 8 insertions(+), 7 deletions(-) diff --git a/src/modules/components/test_status/tip_icon/tip_fail.ts b/src/modules/components/test_status/tip_icon/tip_fail.ts index c943248..576580e 100644 --- a/src/modules/components/test_status/tip_icon/tip_fail.ts +++ b/src/modules/components/test_status/tip_icon/tip_fail.ts @@ -62,7 +62,7 @@ export class TipFail extends BI.Widget { }, { type: BI.VerticalAdaptLayout.xtype, - _hgap: 12, + hgap: 12, items: [ { type: BI.Button.xtype, diff --git a/src/modules/pages/connection/connection.ts b/src/modules/pages/connection/connection.ts index 90f5ba1..881759d 100644 --- a/src/modules/pages/connection/connection.ts +++ b/src/modules/pages/connection/connection.ts @@ -143,7 +143,6 @@ export class Connection extends BI.Widget { }, }], }, - width: 90, }, ], }, diff --git a/src/modules/title/title_database/title_datebase.ts b/src/modules/title/title_database/title_datebase.ts index 1441d75..6541237 100644 --- a/src/modules/title/title_database/title_datebase.ts +++ b/src/modules/title/title_database/title_datebase.ts @@ -25,13 +25,13 @@ export class TitleDatabase extends BI.Widget { items: [{ type: BI.VerticalAdaptLayout.xtype, height: 40, - rgap: 5, + rgap: 16, items: [ { type: BI.Button.xtype, $value: 'title-database-cancel', text: BI.i18nText('BI-Basic_Cancel'), - level: 'ignore', + light: true, handler: () => { this.store.setPageIndex(PAGE_INDEX.CONNECTION); }, @@ -49,6 +49,7 @@ export class TitleDatabase extends BI.Widget { }, }, ], + _rgap: -16, }], }; } diff --git a/src/modules/title/title_maintain/title_maintain.ts b/src/modules/title/title_maintain/title_maintain.ts index 18fdc2c..9eed070 100644 --- a/src/modules/title/title_maintain/title_maintain.ts +++ b/src/modules/title/title_maintain/title_maintain.ts @@ -15,13 +15,13 @@ export class TitleMaintain extends BI.Widget { items: [{ type: BI.VerticalAdaptLayout.xtype, height: 40, - rgap: 5, + hgap: 16, items: [ { type: BI.Button.xtype, $value: 'title-maintain-cancel', text: BI.i18nText('BI-Basic_Cancel'), - level: 'ignore', + clear: true, handler: () => { this.store.setIsCopy(false); this.store.setPageIndex(PAGE_INDEX.CONNECTION); @@ -32,7 +32,7 @@ export class TitleMaintain extends BI.Widget { type: BI.Button.xtype, $value: 'title-maintain-connection-test', text: BI.i18nText('Dec-Dcm_Connection_Test'), - level: 'ignore', + light: true, handler: () => { this.store.setTestEvent(); }, @@ -47,6 +47,7 @@ export class TitleMaintain extends BI.Widget { }, }, ], + _hgap: -16, }], }; }