From a4a1a6f50dfca3ef52604d0d03aee95cb9f1211d Mon Sep 17 00:00:00 2001 From: fit2cloud-chenyw Date: Thu, 25 Nov 2021 12:17:41 +0800 Subject: [PATCH 1/9] =?UTF-8?q?fix:=20=E4=BB=AA=E8=A1=A8=E6=9D=BF=E4=B8=8B?= =?UTF-8?q?=E6=8B=89=E5=88=97=E8=A1=A8=E7=BB=84=E4=BB=B6=E6=98=BE=E7=A4=BA?= =?UTF-8?q?=E5=BC=82=E5=B8=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../widget/DeWidget/DeSelectGrid.vue | 20 ++++++++++++++----- 1 file changed, 15 insertions(+), 5 deletions(-) diff --git a/frontend/src/components/widget/DeWidget/DeSelectGrid.vue b/frontend/src/components/widget/DeWidget/DeSelectGrid.vue index fd4899ab20..02a54d5250 100644 --- a/frontend/src/components/widget/DeWidget/DeSelectGrid.vue +++ b/frontend/src/components/widget/DeWidget/DeSelectGrid.vue @@ -18,7 +18,7 @@ {{ node.label }} {{ node.label }} - {{ node.label }} + {{ node.label }} @@ -100,7 +100,7 @@ export default { this.allNode.indeterminate = false this.allNode.checked = false } - this.setMutiBox() + // this.setMutiBox() } else { !sourceValid && (this.options.value = null) sourceValid && Array.isArray(sourceValue) && (this.options.value = sourceValue[0]) @@ -169,6 +169,14 @@ export default { if (index >= 0 && !data.checked) { values.splice(index, 1) } + const datas = JSON.parse(JSON.stringify(this.options.attrs.datas)) + this.options.attrs.datas = [] + datas.forEach(item => { + if (item.id === data.id) { + item.checked = data.checked + } + }) + this.options.attrs.datas = datas this.setAllNodeStatus() @@ -194,13 +202,15 @@ export default { allCheckChange(data) { data.indeterminate = false const values = [] - // this.options.value = [] - this.options.attrs.datas.forEach(item => { + this.options.value = [] + const datas = JSON.parse(JSON.stringify(this.options.attrs.datas)) + this.options.attrs.datas = [] + datas.forEach(item => { item.checked = data.checked // data.checked && this.options.value.push(item.id) data.checked && values.push(item.id) }) - + this.options.attrs.datas = datas this.options.value = values this.setCondition() }, From 011b6d692737f316e966d2cbd8b87404a64d9a57 Mon Sep 17 00:00:00 2001 From: fit2cloud-chenyw Date: Thu, 25 Nov 2021 12:50:31 +0800 Subject: [PATCH 2/9] =?UTF-8?q?fix:=20=E6=97=B6=E9=92=9F=E7=BB=84=E4=BB=B6?= =?UTF-8?q?=E8=BE=B9=E6=A1=86=E5=B1=9E=E6=80=A7=E5=AF=BC=E8=87=B4=E8=83=8C?= =?UTF-8?q?=E6=99=AF=E4=B8=8B=E7=A7=BB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- frontend/src/components/canvas/components/TextAttr.vue | 9 +++++---- .../components/canvas/custom-component/component-list.js | 4 ++-- frontend/src/components/canvas/utils/style.js | 5 +++-- 3 files changed, 10 insertions(+), 8 deletions(-) diff --git a/frontend/src/components/canvas/components/TextAttr.vue b/frontend/src/components/canvas/components/TextAttr.vue index 67e040e3f5..1bca4d1795 100644 --- a/frontend/src/components/canvas/components/TextAttr.vue +++ b/frontend/src/components/canvas/components/TextAttr.vue @@ -78,12 +78,12 @@ - + -
- +
+
@@ -268,7 +268,8 @@ export default { 'color', 'backgroundColor', 'date-format', - 'time_margin' + 'time_margin', + 'padding' /* 'margin' */ ], // 文本组件显示的属性 diff --git a/frontend/src/components/canvas/custom-component/component-list.js b/frontend/src/components/canvas/custom-component/component-list.js index 94d807f23b..b15f06e30b 100644 --- a/frontend/src/components/canvas/custom-component/component-list.js +++ b/frontend/src/components/canvas/custom-component/component-list.js @@ -307,8 +307,8 @@ const list = [ borderStyle: 'solid', borderColor: '#000000', borderRadius: 0, - /* margin: 10, */ - time_margin: 0 + time_margin: 0, + padding: 10 }, formatInfo: { openMode: '0', diff --git a/frontend/src/components/canvas/utils/style.js b/frontend/src/components/canvas/utils/style.js index 92b7462833..0bc0e2145c 100644 --- a/frontend/src/components/canvas/utils/style.js +++ b/frontend/src/components/canvas/utils/style.js @@ -10,7 +10,8 @@ export function getStyle(style, filter = []) { 'borderWidth', 'letterSpacing', 'borderRadius', - 'margin' + 'margin', + 'padding' ] const result = {} @@ -75,7 +76,7 @@ export function colorRgb(color, opacity) { } // 处理六位的颜色值 var sColorChange = [] - for (var i = 1; i < 7; i += 2) { + for (let i = 1; i < 7; i += 2) { sColorChange.push(parseInt('0x' + sColor.slice(i, i + 2))) } if (opacity || opacity === 0) { From f2b66e8d13b7f1918ad2f85708b2746e07f315b4 Mon Sep 17 00:00:00 2001 From: taojinlong Date: Thu, 25 Nov 2021 16:47:01 +0800 Subject: [PATCH 3/9] =?UTF-8?q?fix(=E6=95=B0=E6=8D=AE=E9=9B=86):=20?= =?UTF-8?q?=E8=AF=86=E5=88=AB=20hive=20=E5=AD=97=E6=AE=B5=E7=B1=BB?= =?UTF-8?q?=E5=9E=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/io/dataease/provider/datasource/JdbcProvider.java | 3 +++ .../io/dataease/provider/query/hive/HiveQueryProvider.java | 1 + 2 files changed, 4 insertions(+) diff --git a/backend/src/main/java/io/dataease/provider/datasource/JdbcProvider.java b/backend/src/main/java/io/dataease/provider/datasource/JdbcProvider.java index 1417f17ca4..1c24daab9c 100644 --- a/backend/src/main/java/io/dataease/provider/datasource/JdbcProvider.java +++ b/backend/src/main/java/io/dataease/provider/datasource/JdbcProvider.java @@ -121,6 +121,9 @@ public class JdbcProvider extends DatasourceProvider { row[j] = rs.getDate(j + 1).toString(); } break; + case Types.BOOLEAN: + row[j] = rs.getBoolean(j + 1) ? "1" : "0"; + break; default: row[j] = rs.getString(j + 1); break; diff --git a/backend/src/main/java/io/dataease/provider/query/hive/HiveQueryProvider.java b/backend/src/main/java/io/dataease/provider/query/hive/HiveQueryProvider.java index 5ec8fee2b8..dbed986959 100644 --- a/backend/src/main/java/io/dataease/provider/query/hive/HiveQueryProvider.java +++ b/backend/src/main/java/io/dataease/provider/query/hive/HiveQueryProvider.java @@ -40,6 +40,7 @@ public class HiveQueryProvider extends QueryProvider { @Override public Integer transFieldType(String field) { + field = field.toLowerCase(); switch (field) { case "varchar": case "string": From 04ceb4f9c779bf646365967c787b9b1c862850b1 Mon Sep 17 00:00:00 2001 From: taojinlong Date: Thu, 25 Nov 2021 17:39:28 +0800 Subject: [PATCH 4/9] =?UTF-8?q?fix(=E6=95=B0=E6=8D=AE=E6=BA=90):=20?= =?UTF-8?q?=E5=88=A0=E9=99=A4=E6=95=B0=E6=8D=AE=E6=BA=90=E6=97=B6=EF=BC=8C?= =?UTF-8?q?=E5=90=8C=E6=97=B6=E6=B8=85=E7=90=86=E9=A1=B5=E9=9D=A2=E7=BC=93?= =?UTF-8?q?=E5=AD=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- frontend/src/views/system/datasource/DsTree.vue | 1 + frontend/src/views/system/datasource/form.vue | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/frontend/src/views/system/datasource/DsTree.vue b/frontend/src/views/system/datasource/DsTree.vue index 2cb93d3caf..8020009b78 100644 --- a/frontend/src/views/system/datasource/DsTree.vue +++ b/frontend/src/views/system/datasource/DsTree.vue @@ -241,6 +241,7 @@ export default { }).then(() => { delDs(datasource.id).then(res => { this.$success(this.$t('commons.delete_success')) + this.switchMain('DataHome') this.refreshType(datasource) }) }).catch(() => { diff --git a/frontend/src/views/system/datasource/form.vue b/frontend/src/views/system/datasource/form.vue index ea0ae25d56..4476565b81 100644 --- a/frontend/src/views/system/datasource/form.vue +++ b/frontend/src/views/system/datasource/form.vue @@ -10,7 +10,7 @@ + label-width="180px" label-position="right"> From eef5baed066dd7c91497d60e249e5240af1318a8 Mon Sep 17 00:00:00 2001 From: fit2cloud-chenyw Date: Fri, 26 Nov 2021 11:38:25 +0800 Subject: [PATCH 5/9] =?UTF-8?q?fix:=20=E5=89=8D=E7=AB=AF=E6=94=B9=E4=B8=BA?= =?UTF-8?q?=E5=8D=95=E9=A1=B5=E9=9D=A2=E5=BA=94=E7=94=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../auth/service/impl/ShiroServiceImpl.java | 1 - .../dataease/controller/IndexController.java | 15 +++-------- .../controller/panel/server/LinkServer.java | 16 +++++------- .../service/panel/PanelLinkService.java | 2 +- frontend/public/link.html | 24 +++++++++++++++-- frontend/public/nolic.html | 4 +-- frontend/src/link/Link.vue | 15 ----------- frontend/src/link/link-router.js | 17 ------------ frontend/src/link/link.js | 26 ------------------- frontend/src/nolic/Nolic.vue | 16 ------------ frontend/src/nolic/nolic-router.js | 17 ------------ frontend/src/nolic/nolic.js | 26 ------------------- frontend/src/permission.js | 4 +-- frontend/src/router/index.js | 8 +++++- frontend/src/views/link/index.vue | 13 ++++++++-- frontend/src/views/nolic/index.vue | 9 ------- frontend/vue.config.js | 10 ------- 17 files changed, 55 insertions(+), 168 deletions(-) delete mode 100644 frontend/src/link/Link.vue delete mode 100644 frontend/src/link/link-router.js delete mode 100644 frontend/src/link/link.js delete mode 100644 frontend/src/nolic/Nolic.vue delete mode 100644 frontend/src/nolic/nolic-router.js delete mode 100644 frontend/src/nolic/nolic.js delete mode 100644 frontend/src/views/nolic/index.vue diff --git a/backend/src/main/java/io/dataease/auth/service/impl/ShiroServiceImpl.java b/backend/src/main/java/io/dataease/auth/service/impl/ShiroServiceImpl.java index 3ccfc07624..781e02c3c8 100644 --- a/backend/src/main/java/io/dataease/auth/service/impl/ShiroServiceImpl.java +++ b/backend/src/main/java/io/dataease/auth/service/impl/ShiroServiceImpl.java @@ -41,7 +41,6 @@ public class ShiroServiceImpl implements ShiroService { filterChainDefinitionMap.put("/link/**", ANON); filterChainDefinitionMap.put("/index.html", ANON); filterChainDefinitionMap.put("/link.html", ANON); - filterChainDefinitionMap.put("/xggznb/**", ANON); //获取主题信息 diff --git a/backend/src/main/java/io/dataease/controller/IndexController.java b/backend/src/main/java/io/dataease/controller/IndexController.java index 5d7ef017a7..3e39999a8a 100644 --- a/backend/src/main/java/io/dataease/controller/IndexController.java +++ b/backend/src/main/java/io/dataease/controller/IndexController.java @@ -32,15 +32,6 @@ public class IndexController { return "index.html"; } - @GetMapping("/link") - public String link() { - return "link.html"; - } - - @GetMapping("/test") - public String test() { - return "test.html"; - } @GetMapping("/deApi") public String deApi() { @@ -53,12 +44,12 @@ public class IndexController { } } - @GetMapping("/xggznb/{index}") - public String xggznb(@PathVariable(value = "index", required = true) Long index) { + @GetMapping("/link/{index}") + public String xggznb(@PathVariable(value = "index", required = true) Long index) { String url = panelLinkService.getUrlByIndex(index); HttpServletResponse response = ServletUtils.response(); String param = url.substring(url.indexOf("?") + 1); - Cookie cookie = new Cookie("link", param); + Cookie cookie = new Cookie("link", param.split("=")[1]); response.addCookie(cookie); return url; } diff --git a/backend/src/main/java/io/dataease/controller/panel/server/LinkServer.java b/backend/src/main/java/io/dataease/controller/panel/server/LinkServer.java index b1042ae8ec..9a24529fcb 100644 --- a/backend/src/main/java/io/dataease/controller/panel/server/LinkServer.java +++ b/backend/src/main/java/io/dataease/controller/panel/server/LinkServer.java @@ -2,7 +2,6 @@ package io.dataease.controller.panel.server; import io.dataease.base.domain.PanelLink; -import io.dataease.controller.ResultHolder; import io.dataease.controller.panel.api.LinkApi; import io.dataease.controller.request.chart.ChartExtRequest; import io.dataease.controller.request.panel.link.*; @@ -17,6 +16,7 @@ import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RestController; import javax.annotation.Resource; +import java.net.URLDecoder; import java.util.Map; @@ -24,7 +24,6 @@ import java.util.Map; public class LinkServer implements LinkApi { - @Autowired private PanelLinkService panelLinkService; @@ -42,12 +41,11 @@ public class LinkServer implements LinkApi { panelLinkService.changeEnablePwd(request); } - @Override public void resetOverTime(@RequestBody OverTimeRequest request) { panelLinkService.overTime(request); - + } @Override @@ -61,15 +59,16 @@ public class LinkServer implements LinkApi { } @Override - public ValidateDto validate(@RequestBody LinkValidateRequest request) throws Exception{ + public ValidateDto validate(@RequestBody LinkValidateRequest request) throws Exception { String link = request.getLink(); + link = URLDecoder.decode(link, "UTF-8"); String json = panelLinkService.decryptParam(link); ValidateDto dto = new ValidateDto(); String resourceId = json; PanelLink one = panelLinkService.findOne(resourceId); dto.setResourceId(resourceId); - if (ObjectUtils.isEmpty(one)){ + if (ObjectUtils.isEmpty(one)) { dto.setValid(false); return dto; } @@ -91,14 +90,13 @@ public class LinkServer implements LinkApi { } @Override - public Object viewDetail(String viewId, ChartExtRequest requestList) throws Exception{ + public Object viewDetail(String viewId, ChartExtRequest requestList) throws Exception { return chartViewService.getData(viewId, requestList); } - @Override - public String shortUrl(Map param) { + public String shortUrl(Map param) { String resourceId = param.get("resourceId"); return panelLinkService.getShortUrl(resourceId); } diff --git a/backend/src/main/java/io/dataease/service/panel/PanelLinkService.java b/backend/src/main/java/io/dataease/service/panel/PanelLinkService.java index 3b8cdf09c6..ef85c3d155 100644 --- a/backend/src/main/java/io/dataease/service/panel/PanelLinkService.java +++ b/backend/src/main/java/io/dataease/service/panel/PanelLinkService.java @@ -32,7 +32,7 @@ import java.util.List; public class PanelLinkService { private static final String BASEURL = "/link.html?link="; - private static final String SHORT_URL_PREFIX = "/xggznb/"; + private static final String SHORT_URL_PREFIX = "/link/"; @Resource private PanelLinkMapper mapper; diff --git a/frontend/public/link.html b/frontend/public/link.html index c56ef18665..f1592804ae 100644 --- a/frontend/public/link.html +++ b/frontend/public/link.html @@ -4,10 +4,30 @@ - - DataEase + + diff --git a/frontend/public/nolic.html b/frontend/public/nolic.html index 89f3ecbc52..fc6f71162b 100644 --- a/frontend/public/nolic.html +++ b/frontend/public/nolic.html @@ -4,10 +4,10 @@ - DataEase -
+
缺少许可
+ diff --git a/frontend/src/link/Link.vue b/frontend/src/link/Link.vue deleted file mode 100644 index 7ee67c92eb..0000000000 --- a/frontend/src/link/Link.vue +++ /dev/null @@ -1,15 +0,0 @@ - - - diff --git a/frontend/src/link/link-router.js b/frontend/src/link/link-router.js deleted file mode 100644 index 7ea2381ba1..0000000000 --- a/frontend/src/link/link-router.js +++ /dev/null @@ -1,17 +0,0 @@ -import Vue from 'vue' -import Router from 'vue-router' - -Vue.use(Router) - -export default new Router({ - routes: [ - { - path: '/', - name: 'home', - component: () => import('../views/link/index.vue'), - meta: { - title: '首页' - } - } - ] -}) diff --git a/frontend/src/link/link.js b/frontend/src/link/link.js deleted file mode 100644 index 4999c9d1f3..0000000000 --- a/frontend/src/link/link.js +++ /dev/null @@ -1,26 +0,0 @@ -import Vue from 'vue' -import Link from './Link.vue' -import router from './link-router' -import store from '../store' -import '@/styles/index.scss' // global css -import i18n from '../lang' // internationalization -import ElementUI from 'element-ui' -import '@/components/canvas/custom-component' // 注册自定义组件 -import widgets from '@/components/widget' -import * as echarts from 'echarts' -import UmyUi from 'umy-ui' -import '@/utils/DateUtil' -Vue.use(UmyUi) -Vue.prototype.$echarts = echarts -Vue.config.productionTip = false -Vue.use(widgets) -Vue.use(ElementUI, { - - i18n: (key, value) => i18n.t(key, value) -}) -new Vue({ - router, - store, - i18n, - render: h => h(Link) -}).$mount('#link') diff --git a/frontend/src/nolic/Nolic.vue b/frontend/src/nolic/Nolic.vue deleted file mode 100644 index 3824ab98da..0000000000 --- a/frontend/src/nolic/Nolic.vue +++ /dev/null @@ -1,16 +0,0 @@ - - - diff --git a/frontend/src/nolic/nolic-router.js b/frontend/src/nolic/nolic-router.js deleted file mode 100644 index 4730048019..0000000000 --- a/frontend/src/nolic/nolic-router.js +++ /dev/null @@ -1,17 +0,0 @@ -import Vue from 'vue' -import Router from 'vue-router' - -Vue.use(Router) - -export default new Router({ - routes: [ - { - path: '/', - name: 'home', - component: () => import('../views/nolic/index.vue'), - meta: { - title: '首页' - } - } - ] -}) diff --git a/frontend/src/nolic/nolic.js b/frontend/src/nolic/nolic.js deleted file mode 100644 index f3110de5ae..0000000000 --- a/frontend/src/nolic/nolic.js +++ /dev/null @@ -1,26 +0,0 @@ -import Vue from 'vue' -import Nolic from './Nolic.vue' -import router from './nolic-router' -import store from '../store' -import '@/styles/index.scss' // global css -import i18n from '../lang' // internationalization -import ElementUI from 'element-ui' -import '@/components/canvas/custom-component' // 注册自定义组件 -import widgets from '@/components/widget' -import * as echarts from 'echarts' -import UmyUi from 'umy-ui' - -Vue.use(UmyUi) -Vue.prototype.$echarts = echarts -Vue.config.productionTip = false -Vue.use(widgets) -Vue.use(ElementUI, { - - i18n: (key, value) => i18n.t(key, value) -}) -new Vue({ - router, - store, - i18n, - render: h => h(Nolic) -}).$mount('#nolic') diff --git a/frontend/src/permission.js b/frontend/src/permission.js index f49c414902..6d4d0ec253 100644 --- a/frontend/src/permission.js +++ b/frontend/src/permission.js @@ -11,7 +11,7 @@ import { filterAsyncRouter } from '@/store/modules/permission' NProgress.configure({ showSpinner: false }) // NProgress Configuration -const whiteList = ['/login', '/401', '/404'] // no redirect whitelist +const whiteList = ['/login', '/401', '/404', '/delink', '/nolic'] // no redirect whitelist router.beforeEach(async(to, from, next) => { // start progress bar @@ -29,7 +29,7 @@ router.beforeEach(async(to, from, next) => { NProgress.done() } else { const hasGetUserInfo = store.getters.name - if (hasGetUserInfo || to.path.indexOf('/preview/') > -1) { + if (hasGetUserInfo || to.path.indexOf('/preview/') > -1 || to.path.indexOf('/delink') > -1 || to.path.indexOf('/nolic') > -1) { next() store.dispatch('permission/setCurrentPath', to.path) } else { diff --git a/frontend/src/router/index.js b/frontend/src/router/index.js index 9f61116aaf..55100f2fd7 100644 --- a/frontend/src/router/index.js +++ b/frontend/src/router/index.js @@ -71,6 +71,12 @@ export const constantRoutes = [ } ] }, + { + path: '/delink', + component: () => import('@/views/link'), + hidden: true + }, + { path: '/preview/:reportId', component: () => import('@/components/canvas/components/Editor/PreviewEject'), @@ -208,7 +214,7 @@ export const constantRoutes = [ ] const createRouter = () => new Router({ - // mode: 'history', // require service support +// mode: 'history', // require service support mode: 'hash', scrollBehavior: () => ({ y: 0 }), routes: constantRoutes diff --git a/frontend/src/views/link/index.vue b/frontend/src/views/link/index.vue index 4579a22e4c..37f46ce781 100644 --- a/frontend/src/views/link/index.vue +++ b/frontend/src/views/link/index.vue @@ -17,6 +17,7 @@ export default { components: { LinkError, LinkPwd, LinkView, LinkExpire }, + data() { return { resourceId: null, @@ -32,8 +33,16 @@ export default { loadInit() { debugger - this.link = getQueryVariable(this.PARAMKEY) - validate({ link: this.link }).then(res => { + // this.link = getQueryVariable(this.PARAMKEY) + this.link = this.$route.query.link + if (!this.link) { + this.link = getQueryVariable(this.PARAMKEY) + } + if (!this.link) { + this.showError() + return + } + validate({ link: encodeURIComponent(this.link) }).then(res => { const { resourceId, valid, enablePwd, passPwd, expire } = res.data this.resourceId = resourceId // 如果链接无效 直接显示无效页面 diff --git a/frontend/src/views/nolic/index.vue b/frontend/src/views/nolic/index.vue deleted file mode 100644 index 0ce8caa15f..0000000000 --- a/frontend/src/views/nolic/index.vue +++ /dev/null @@ -1,9 +0,0 @@ - - - diff --git a/frontend/vue.config.js b/frontend/vue.config.js index a0b8c6cfdf..9f40bcca0e 100644 --- a/frontend/vue.config.js +++ b/frontend/vue.config.js @@ -36,16 +36,6 @@ module.exports = { entry: 'src/main.js', template: 'public/index.html', filename: 'index.html' - }, - link: { - entry: 'src/link/link.js', - template: 'public/link.html', - filename: 'link.html' - }, - nolic: { - entry: 'src/nolic/nolic.js', - template: 'public/nolic.html', - filename: 'nolic.html' } }, configureWebpack: { From 036859f670efd174c093c17dd18f7082dc6b2ea6 Mon Sep 17 00:00:00 2001 From: fit2cloud-chenyw Date: Fri, 26 Nov 2021 13:47:17 +0800 Subject: [PATCH 6/9] =?UTF-8?q?fix:=20token=E9=AA=8C=E7=AD=BE=E9=80=BB?= =?UTF-8?q?=E8=BE=91=E9=94=99=E8=AF=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/java/io/dataease/auth/filter/JWTFilter.java | 5 +++-- backend/src/main/java/io/dataease/auth/util/JWTUtils.java | 8 ++++++++ 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/backend/src/main/java/io/dataease/auth/filter/JWTFilter.java b/backend/src/main/java/io/dataease/auth/filter/JWTFilter.java index eca5609c22..a68673c3c1 100644 --- a/backend/src/main/java/io/dataease/auth/filter/JWTFilter.java +++ b/backend/src/main/java/io/dataease/auth/filter/JWTFilter.java @@ -1,5 +1,6 @@ package io.dataease.auth.filter; +import com.auth0.jwt.algorithms.Algorithm; import io.dataease.auth.entity.ASKToken; import io.dataease.auth.entity.JWTToken; import io.dataease.auth.entity.SysUserEntity; @@ -115,9 +116,9 @@ public class JWTFilter extends BasicHttpAuthenticationFilter { DataEaseException.throwException(Translator.get("i18n_not_find_user")); } String password = user.getPassword(); - + Algorithm algorithm = Algorithm.HMAC256(password); + JWTUtils.verifySign(algorithm, token); String newToken = JWTUtils.sign(tokenInfo, password); - // 设置响应的Header头新Token HttpServletResponse httpServletResponse = (HttpServletResponse) response; httpServletResponse.addHeader("Access-Control-Expose-Headers", "RefreshAuthorization"); diff --git a/backend/src/main/java/io/dataease/auth/util/JWTUtils.java b/backend/src/main/java/io/dataease/auth/util/JWTUtils.java index ebdb72a180..dd10059a6f 100644 --- a/backend/src/main/java/io/dataease/auth/util/JWTUtils.java +++ b/backend/src/main/java/io/dataease/auth/util/JWTUtils.java @@ -35,15 +35,23 @@ public class JWTUtils { * @return 是否正确 */ public static boolean verify(String token, TokenInfo tokenInfo, String secret) { + Algorithm algorithm = Algorithm.HMAC256(secret); Verification verification = JWT.require(algorithm) .withClaim("username", tokenInfo.getUsername()) .withClaim("userId", tokenInfo.getUserId()); JWTVerifier verifier = verification.build(); + + verifySign(algorithm, token); verifier.verify(token); return true; } + public static void verifySign(Algorithm algorithm, String token) { + DecodedJWT decode = JWT.decode(token); + algorithm.verify(decode); + } + /** * 获得token中的信息无需secret解密也能获得 * From e91a3e53c5a1f387ba9d0242b328af33f94b31a1 Mon Sep 17 00:00:00 2001 From: fit2cloud-chenyw Date: Fri, 26 Nov 2021 14:05:23 +0800 Subject: [PATCH 7/9] =?UTF-8?q?fix:=20=E6=94=BE=E5=BC=80excel=E4=B8=8A?= =?UTF-8?q?=E4=BC=A0api?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/dataset/DataSetTableController.java | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/backend/src/main/java/io/dataease/controller/dataset/DataSetTableController.java b/backend/src/main/java/io/dataease/controller/dataset/DataSetTableController.java index 9c2dcbfebc..13bf1f1f11 100644 --- a/backend/src/main/java/io/dataease/controller/dataset/DataSetTableController.java +++ b/backend/src/main/java/io/dataease/controller/dataset/DataSetTableController.java @@ -10,9 +10,7 @@ import io.dataease.dto.datasource.TableFiled; import io.dataease.dto.dataset.DataSetTableDTO; import io.dataease.dto.dataset.ExcelFileData; import io.dataease.service.dataset.DataSetTableService; -import io.swagger.annotations.Api; -import io.swagger.annotations.ApiOperation; -import io.swagger.annotations.ApiParam; +import io.swagger.annotations.*; import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; @@ -132,8 +130,13 @@ public class DataSetTableController { return dataSetTableService.getDatasetDetail(id); } - // @ApiOperation("excel上传") + @ApiOperation("excel上传") @PostMapping("excel/upload") + @ApiImplicitParams({ + @ApiImplicitParam(name = "file", value = "文件", required = true, dataType = "MultipartFile"), + @ApiImplicitParam(name = "tableId", value = "数据表ID", required = true, dataType = "String"), + @ApiImplicitParam(name = "editType", value = "编辑类型", required = true, dataType = "Integer") + }) public ExcelFileData excelUpload(@RequestParam("file") MultipartFile file, @RequestParam("tableId") String tableId, @RequestParam("editType") Integer editType) throws Exception { return dataSetTableService.excelSaveAndParse(file, tableId, editType); } From 3bedd437552aa003301e2f212740c9dcfc1c4c7b Mon Sep 17 00:00:00 2001 From: fit2cloud-chenyw Date: Fri, 26 Nov 2021 14:32:22 +0800 Subject: [PATCH 8/9] =?UTF-8?q?refactor:=20=E5=85=AC=E5=85=B1=E9=93=BE?= =?UTF-8?q?=E6=8E=A5=E6=96=B9=E6=B3=95=E5=90=8D=E7=A7=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/java/io/dataease/controller/IndexController.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/backend/src/main/java/io/dataease/controller/IndexController.java b/backend/src/main/java/io/dataease/controller/IndexController.java index 3e39999a8a..7236b8d6b4 100644 --- a/backend/src/main/java/io/dataease/controller/IndexController.java +++ b/backend/src/main/java/io/dataease/controller/IndexController.java @@ -45,7 +45,7 @@ public class IndexController { } @GetMapping("/link/{index}") - public String xggznb(@PathVariable(value = "index", required = true) Long index) { + public String link(@PathVariable(value = "index", required = true) Long index) { String url = panelLinkService.getUrlByIndex(index); HttpServletResponse response = ServletUtils.response(); String param = url.substring(url.indexOf("?") + 1); From b3a014c1a6822e2a1863c3d08c529197f9ba70f3 Mon Sep 17 00:00:00 2001 From: junjie Date: Mon, 29 Nov 2021 10:10:05 +0800 Subject: [PATCH 9/9] =?UTF-8?q?fix(=E6=95=B0=E6=8D=AE=E9=9B=86):=20?= =?UTF-8?q?=E7=BC=96=E8=BE=91=E6=95=B0=E6=8D=AE=E9=9B=86=E5=8F=AF=E8=83=BD?= =?UTF-8?q?=E4=BC=9A=E5=87=BA=E7=8E=B0=E9=87=8D=E5=A4=8D=E5=AD=97=E6=AE=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/io/dataease/service/dataset/DataSetTableService.java | 1 + 1 file changed, 1 insertion(+) diff --git a/backend/src/main/java/io/dataease/service/dataset/DataSetTableService.java b/backend/src/main/java/io/dataease/service/dataset/DataSetTableService.java index 5b6e7bf4e9..85bba76a30 100644 --- a/backend/src/main/java/io/dataease/service/dataset/DataSetTableService.java +++ b/backend/src/main/java/io/dataease/service/dataset/DataSetTableService.java @@ -980,6 +980,7 @@ public class DataSetTableService { datasetTableField.setTableId(datasetTable.getId()); datasetTableField.setColumnIndex(i); } + dataSetTableFieldsService.deleteByTableId(datasetTable.getId()); dataSetTableFieldsService.batchEdit(fieldList); // custom 创建doris视图 if (datasetTable.getMode() == 1) {