diff --git a/backend/src/main/java/io/metersphere/base/mapper/ext/ExtSystemParameterMapper.java b/backend/src/main/java/io/metersphere/base/mapper/ext/ExtSystemParameterMapper.java index 7fd5f72e47..6ca545e3b2 100644 --- a/backend/src/main/java/io/metersphere/base/mapper/ext/ExtSystemParameterMapper.java +++ b/backend/src/main/java/io/metersphere/base/mapper/ext/ExtSystemParameterMapper.java @@ -1,5 +1,7 @@ package io.metersphere.base.mapper.ext; public interface ExtSystemParameterMapper { - String email(); + String email(); + + void saveBaseurl(String baseurl); } diff --git a/backend/src/main/java/io/metersphere/base/mapper/ext/ExtSystemParameterMapper.xml b/backend/src/main/java/io/metersphere/base/mapper/ext/ExtSystemParameterMapper.xml index db788581c5..c8283baae4 100644 --- a/backend/src/main/java/io/metersphere/base/mapper/ext/ExtSystemParameterMapper.xml +++ b/backend/src/main/java/io/metersphere/base/mapper/ext/ExtSystemParameterMapper.xml @@ -5,4 +5,9 @@ + + + update system_parameter set param_value = #{baseurl,jdbcType=VARCHAR} + where param_key = 'base.url' and (param_value like 'http://localhost%' or param_value = '' or param_value is null) + \ No newline at end of file diff --git a/backend/src/main/java/io/metersphere/commons/utils/ShiroUtils.java b/backend/src/main/java/io/metersphere/commons/utils/ShiroUtils.java index 95a0757129..0f8042b419 100644 --- a/backend/src/main/java/io/metersphere/commons/utils/ShiroUtils.java +++ b/backend/src/main/java/io/metersphere/commons/utils/ShiroUtils.java @@ -47,6 +47,7 @@ public class ShiroUtils { filterChainDefinitionMap.put("/api/document/**", "anon"); filterChainDefinitionMap.put("/document/**", "anon"); filterChainDefinitionMap.put("/system/theme", "anon"); + filterChainDefinitionMap.put("/system/save/baseurl/**", "anon"); filterChainDefinitionMap.put("/v1/catalog/**", "anon"); filterChainDefinitionMap.put("/v1/agent/**", "anon"); diff --git a/backend/src/main/java/io/metersphere/controller/SystemParameterController.java b/backend/src/main/java/io/metersphere/controller/SystemParameterController.java index 4893b921f6..84be30c4eb 100644 --- a/backend/src/main/java/io/metersphere/controller/SystemParameterController.java +++ b/backend/src/main/java/io/metersphere/controller/SystemParameterController.java @@ -24,7 +24,7 @@ public class SystemParameterController { private SystemParameterService SystemParameterService; @PostMapping("/edit/email") - @MsAuditLog(module = "system_parameter_setting", type = OperLogConstants.UPDATE, title = "邮件设置",beforeEvent = "#msClass.getMailLogDetails()", content = "#msClass.getMailLogDetails()", msClass = SystemParameterService.class) + @MsAuditLog(module = "system_parameter_setting", type = OperLogConstants.UPDATE, title = "邮件设置", beforeEvent = "#msClass.getMailLogDetails()", content = "#msClass.getMailLogDetails()", msClass = SystemParameterService.class) public void editMail(@RequestBody List systemParameter) { SystemParameterService.editMail(systemParameter); } @@ -65,6 +65,11 @@ public class SystemParameterController { SystemParameterService.saveBaseInfo(systemParameter); } + @GetMapping("/save/baseurl") + public void saveBaseurl(@RequestParam("baseurl") String baseurl) { + SystemParameterService.saveBaseurl(baseurl); + } + @PostMapping("/save/ldap") @MsAuditLog(module = "system_parameter_setting", type = OperLogConstants.UPDATE, beforeEvent = "#msClass.getLogDetails()", content = "#msClass.getLogDetails()", msClass = SystemParameterService.class) public void saveLdap(@RequestBody List systemParameter) { diff --git a/backend/src/main/java/io/metersphere/service/SystemParameterService.java b/backend/src/main/java/io/metersphere/service/SystemParameterService.java index 76cf667d33..f56db07117 100644 --- a/backend/src/main/java/io/metersphere/service/SystemParameterService.java +++ b/backend/src/main/java/io/metersphere/service/SystemParameterService.java @@ -328,4 +328,7 @@ public class SystemParameterService { return null; } + public void saveBaseurl(String baseurl) { + extSystemParameterMapper.saveBaseurl(baseurl); + } } diff --git a/frontend/src/login/Login.vue b/frontend/src/login/Login.vue index 6a108138fc..b6381307b6 100644 --- a/frontend/src/login/Login.vue +++ b/frontend/src/login/Login.vue @@ -19,7 +19,9 @@ LDAP 普通登录 - {{ auth.type }} {{ auth.name }} + {{ auth.type }} + {{ auth.name }} + @@ -88,13 +90,20 @@ export default { loginTitle: this.$t("commons.welcome"), authSources: [], loginUrl: 'signin', - } + }; }, beforeCreate() { this.$get('/system/theme', res => { this.color = res.data ? res.data : PRIMARY_COLOR; document.body.style.setProperty('--primary_color', this.color); - }) + }); + // 保存当前站点url + this.$get('/system/save/baseurl?baseurl=' + window.location.origin) + .then(() => { + }) + .catch(() => { + }); + this.result = this.$get("/isLogin").then(response => { if (display.default !== undefined) { @@ -118,17 +127,17 @@ export default { }); this.$get("/ldap/open", response => { this.openLdap = response.data; - if (this.openLdap){ + if (this.openLdap) { this.form.authenticate = 'LDAP'; } - }) + }); }, created: function () { // 主页添加键盘事件,注意,不能直接在焦点事件上添加回车 document.addEventListener("keydown", this.watchEnter); // if (license.default) { - license.default.valid(this) + license.default.valid(this); } }, @@ -187,10 +196,10 @@ export default { this.$get("language", response => { language = response.data; localStorage.setItem(DEFAULT_LANGUAGE, language); - window.location.href = "/" - }) + window.location.href = "/"; + }); } else { - window.location.href = "/" + window.location.href = "/"; } }, redirectAuth(authId) { @@ -199,7 +208,7 @@ export default { } } } -} +};