From 7eeae69a6303ad3e07ad1bd70c684726ae42043e Mon Sep 17 00:00:00 2001 From: thinkgem Date: Fri, 28 Feb 2025 17:07:27 +0800 Subject: [PATCH] =?UTF-8?q?=E8=B4=A6=E5=8F=B7=E6=89=BE=E5=9B=9E=E5=AF=86?= =?UTF-8?q?=E7=A0=81=E5=A2=9E=E5=8A=A0=E7=A7=9F=E6=88=B7=E5=8F=82=E6=95=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/jeesite/common/mapper/JsonMapper.java | 6 ++-- .../modules/sys/web/AccountController.java | 29 ++++++++++--------- .../views/modules/sys/forgetPwd.html | 10 +++++++ .../views/modules/sys/registerUser.html | 3 +- .../resources/static/modules/sys/forgetPwd.js | 6 ++-- .../resources/static/modules/sys/sysLogin.js | 3 +- 6 files changed, 36 insertions(+), 21 deletions(-) diff --git a/common/src/main/java/com/jeesite/common/mapper/JsonMapper.java b/common/src/main/java/com/jeesite/common/mapper/JsonMapper.java index 71bfb768..13c7f41c 100644 --- a/common/src/main/java/com/jeesite/common/mapper/JsonMapper.java +++ b/common/src/main/java/com/jeesite/common/mapper/JsonMapper.java @@ -50,7 +50,7 @@ public class JsonMapper extends ObjectMapper { private static final class JsonMapperHolder { private static final JsonMapper INSTANCE = new JsonMapper(); } - + public JsonMapper() { // Spring ObjectMapper 初始化配置,支持 @JsonView new Jackson2ObjectMapperBuilder().configure(this); @@ -182,8 +182,8 @@ public class JsonMapper extends ObjectMapper { * 反序列化POJO或简单Collection如List. * 如果JSON字符串为Null或"null"字符串, 返回Null. * 如果JSON字符串为"[]", 返回空集合. - * 如需反序列化复杂Collection如List, 请使用fromJson(String,JavaType) - * @see #fromJson(String, JavaType) + * 如需反序列化复杂Collection如List, 请使用fromJson(String, Class) + * @see #fromJson(String, Class) */ public T fromJsonString(String jsonString, Class clazz) { if (StringUtils.isEmpty(jsonString) || "".equals(jsonString)) { diff --git a/modules/core/src/main/java/com/jeesite/modules/sys/web/AccountController.java b/modules/core/src/main/java/com/jeesite/modules/sys/web/AccountController.java index 234bf055..f9ec6f86 100644 --- a/modules/core/src/main/java/com/jeesite/modules/sys/web/AccountController.java +++ b/modules/core/src/main/java/com/jeesite/modules/sys/web/AccountController.java @@ -20,10 +20,7 @@ import com.jeesite.modules.sys.service.UserService; import com.jeesite.modules.sys.utils.PwdUtils; import com.jeesite.modules.sys.utils.UserUtils; import com.jeesite.modules.sys.utils.ValidCodeUtils; -import io.swagger.annotations.Api; -import io.swagger.annotations.ApiImplicitParam; -import io.swagger.annotations.ApiImplicitParams; -import io.swagger.annotations.ApiOperation; +import io.swagger.annotations.*; import org.apache.shiro.authc.AuthenticationException; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; @@ -69,9 +66,10 @@ public class AccountController extends BaseController{ @ApiImplicitParams({ @ApiImplicitParam(name = "mobile", value = "登录手机号", required = true, paramType="query", type="String"), @ApiImplicitParam(name = "validCode", value = "图片验证码,防止重复机器人", required = true), + @ApiImplicitParam(name = "corpCode", value = "所属租户"), }) - public String getLoginValidCode(String mobile, String validCode, HttpServletRequest request) { - return getValidCode("login", mobile, validCode, "mobile", request, "登录验证码"); + public String getLoginValidCode(String mobile, String validCode, String corpCode, HttpServletRequest request) { + return getValidCode("login", mobile, validCode, "mobile", corpCode, request, "登录验证码"); } /** @@ -139,9 +137,10 @@ public class AccountController extends BaseController{ @ApiImplicitParam(name = "loginCode", value = "登录账号", required = true, paramType="query", type="String"), @ApiImplicitParam(name = "validCode", value = "图片验证码,防止重复机器人", required = true), @ApiImplicitParam(name = "validType", value = "验证方式(mobile、email)", required = true), + @ApiImplicitParam(name = "corpCode", value = "所属租户"), }) - public String getFpValidCode(User user, String validCode, String validType, HttpServletRequest request) { - return getValidCode("fp", user.getLoginCode(), validCode, validType, request, "找回密码"); + public String getFpValidCode(User user, String validCode, String validType, String corpCode, HttpServletRequest request) { + return getValidCode("fp", user.getLoginCode(), validCode, validType, corpCode, request, "找回密码"); } /** @@ -180,7 +179,7 @@ public class AccountController extends BaseController{ * 获取验证码 * @author ThinkGem */ - private String getValidCode(String type, String loginCode, String validCode, String validType, HttpServletRequest request, String msgTitle) { + private String getValidCode(String type, String loginCode, String validCode, String validType, String corpCode, HttpServletRequest request, String msgTitle) { // 校验图片验证码,防止重复机器人。 if (!ValidCodeUtils.validate(request, validCode)){ return renderResult(Global.FALSE, text("图片验证码不正确或已失效,请点击图片刷新!")); @@ -193,6 +192,7 @@ public class AccountController extends BaseController{ if ("login".equals(type)){ User where = new User(); where.setMobile(loginCode); + where.setCorpCode_(corpCode); where.setStatus(User.STATUS_NORMAL); List userList = userService.findListByMobile(where); if (!userList.isEmpty()){ @@ -212,7 +212,7 @@ public class AccountController extends BaseController{ return renderResult(Global.FALSE, text("手机号不正确!")); } } else { - u = UserUtils.getByLoginCode(loginCode); + u = UserUtils.getByLoginCode(loginCode, corpCode); if(u == null){ return renderResult(Global.FALSE, text("登录账号不正确!")); } @@ -287,14 +287,15 @@ public class AccountController extends BaseController{ @ApiImplicitParams({ @ApiImplicitParam(name = "loginCode", value = "登录账号", required = true, paramType="query", type="String"), @ApiImplicitParam(name = "validCode", value = "图片验证码,防止重复机器人", required = true), + @ApiImplicitParam(name = "corpCode", value = "所属租户"), }) - public String getPwdQuestion(String loginCode, String validCode, HttpServletRequest request) { + public String getPwdQuestion(String loginCode, String validCode, String corpCode, HttpServletRequest request) { // 校验图片验证码,防止重复机器人。 if (!ValidCodeUtils.validate(request, validCode)){ return renderResult(Global.FALSE, text("图片验证码不正确或已失效,请点击图片刷新!")); } // 账号是否存在验证 - User u = UserUtils.getByLoginCode(loginCode); + User u = UserUtils.getByLoginCode(loginCode, corpCode); if (u == null){ return renderResult(Global.FALSE, text("登录账号不正确!")); } @@ -340,7 +341,7 @@ public class AccountController extends BaseController{ public String savePwdByPwdQuestion(User user, HttpServletRequest request) { String userCode = UserUtils.getCache("fpUserCode"); String loginCode = UserUtils.getCache("fpLoginCode"); - + // 一同验证保存的用户名和验证码是否正确(如果只校验验证码,不验证用户名,则会有获取验证码后修改用户名的漏洞) if (!(userCode != null && loginCode != null && loginCode.equals(user.getLoginCode()))){ return renderResult(Global.FALSE, text("请重新获取保密问题!")); @@ -355,7 +356,7 @@ public class AccountController extends BaseController{ } // 验证三个密保问题是否正确。 - User u = UserUtils.getByLoginCode(user.getLoginCode()); + User u = UserUtils.get(userCode); if (!(u != null && loginCode.equals(user.getLoginCode()) && PwdUtils.validatePassword(user.getPwdQuestionAnswer(), u.getPwdQuestionAnswer()) && PwdUtils.validatePassword(user.getPwdQuestionAnswer2(), u.getPwdQuestionAnswer2()) diff --git a/modules/core/src/main/resources/views/modules/sys/forgetPwd.html b/modules/core/src/main/resources/views/modules/sys/forgetPwd.html index b71b11bf..53e8c135 100644 --- a/modules/core/src/main/resources/views/modules/sys/forgetPwd.html +++ b/modules/core/src/main/resources/views/modules/sys/forgetPwd.html @@ -18,6 +18,16 @@ + <% if(@Global.isUseCorpModel()){ %> +
+ <#form:treeselect id="fa_corp" title="${text('选择租户')}" allowClear="true" + name="corpCode" value="${@CorpUtils.getCurrentCorpCode()}" labelName="corpName" + labelValue="(${@CorpUtils.getCurrentCorpCode()}) ${@CorpUtils.getCurrentCorpName()}" + url="${ctx}/sys/corpAdmin/treeData?isShowCode=true" + class="required" data-msg-required="请选择所属租户." + placeholder="${text('所属租户')}"/> +
+ <% } %>
diff --git a/modules/core/src/main/resources/views/modules/sys/registerUser.html b/modules/core/src/main/resources/views/modules/sys/registerUser.html index bd416072..beb85860 100644 --- a/modules/core/src/main/resources/views/modules/sys/registerUser.html +++ b/modules/core/src/main/resources/views/modules/sys/registerUser.html @@ -20,7 +20,8 @@ <% if(@Global.isUseCorpModel()){ %>
<#form:treeselect id="reg_corp" title="${text('选择租户')}" allowClear="true" - name="corpCode" value="0" labelName="corpName" labelValue="JeeSite" + name="corpCode" value="${@CorpUtils.getCurrentCorpCode()}" labelName="corpName" + labelValue="(${@CorpUtils.getCurrentCorpCode()}) ${@CorpUtils.getCurrentCorpName()}" url="${ctx}/sys/corpAdmin/treeData?isShowCode=true" class="required" data-msg-required="请选择所属租户." placeholder="${text('所属租户')}"/> diff --git a/modules/static/src/main/resources/static/modules/sys/forgetPwd.js b/modules/static/src/main/resources/static/modules/sys/forgetPwd.js index bff9e664..0dd5209d 100644 --- a/modules/static/src/main/resources/static/modules/sys/forgetPwd.js +++ b/modules/static/src/main/resources/static/modules/sys/forgetPwd.js @@ -46,7 +46,8 @@ $(function(){ js.ajaxSubmit(ctxPath + '/account/getFpValidCode', { validType: $('#fp_validType').val(), loginCode : $('#fp_loginCode').val(), - validCode : $('#fp_validCode').val() + validCode : $('#fp_validCode').val(), + corpCode : $('#fp_corpCode').val() }, function(data){ js.showMessage(data.message); if (data.result == 'true'){ @@ -61,7 +62,8 @@ $(function(){ $('#fp_getQuestion').click(function() { js.ajaxSubmit(ctxPath + '/account/getPwdQuestion', { loginCode : $('#fp_loginCode').val(), - validCode : $('#fp_validCode').val() + validCode : $('#fp_validCode').val(), + corpCode : $('#fp_corpCode').val() }, function(data){ js.showMessage(data.message); if (data.result == 'true'){ diff --git a/modules/static/src/main/resources/static/modules/sys/sysLogin.js b/modules/static/src/main/resources/static/modules/sys/sysLogin.js index 1a073f66..3b04e2b1 100644 --- a/modules/static/src/main/resources/static/modules/sys/sysLogin.js +++ b/modules/static/src/main/resources/static/modules/sys/sysLogin.js @@ -66,7 +66,8 @@ $(function(){ var $this = this; js.ajaxSubmit(ctxPath + '/account/getLoginValidCode', { mobile : $('#mobile').val(), - validCode : $('#validCode').val() + validCode : $('#validCode').val(), + corpCode : $('#switchCorpSelectCode').val() }, function(data){ js.showMessage(data.message); if (data.result == 'true'){