From 9cff1276ee4b1273d6f05c6438fff94baf09be87 Mon Sep 17 00:00:00 2001 From: tianwenbo Date: Mon, 6 Mar 2023 18:01:17 +0800 Subject: [PATCH] =?UTF-8?q?=E3=80=90fix=20sonar=E3=80=91=20LoginServiceImp?= =?UTF-8?q?l.java=E6=96=87=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../system/service/impl/LoginServiceImpl.java | 61 ++++++++++--------- 1 file changed, 33 insertions(+), 28 deletions(-) diff --git a/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/service/impl/LoginServiceImpl.java b/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/service/impl/LoginServiceImpl.java index 71a0f1a5..9001c816 100644 --- a/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/service/impl/LoginServiceImpl.java +++ b/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/service/impl/LoginServiceImpl.java @@ -67,9 +67,13 @@ public class LoginServiceImpl implements ILoginService { //密码登录错误的最大限制次数 public static final int RETRY_LOGIN_MAX_COUNT = 5; + private static final String UTF_8 = "utf-8"; + private static final String USER_NAME = "用户名: "; + private static final String USER_INFO = "userInfo"; + @Override public Result login(SysLoginModel sysLoginModel) { - Result result = new Result(); + Result result ; String username = sysLoginModel.getUsername(); String password = sysLoginModel.getPassword(); String rsaPublicKey = sysLoginModel.getRsaPublicKey(); @@ -89,7 +93,7 @@ public class LoginServiceImpl implements ILoginService { return Result.error("验证码无效"); } String lowerCaseCaptcha = captcha.toLowerCase(); - String realKey = MD5Util.MD5Encode(lowerCaseCaptcha+sysLoginModel.getCheckKey(), "utf-8"); + String realKey = MD5Util.MD5Encode(lowerCaseCaptcha+sysLoginModel.getCheckKey(), UTF_8); Object checkCode = redisUtil.get(realKey); //当进入登录页时,有一定几率出现验证码错误 #1714 if(checkCode==null || !checkCode.toString().equals(lowerCaseCaptcha)) { @@ -128,7 +132,7 @@ public class LoginServiceImpl implements ILoginService { // 重试登录次数加一 retryCount++; if( retryCount == 1){ - redisUtil.set(RETRY_LOGIN_PREFIX + username,retryCount,60 * 15); + redisUtil.set(RETRY_LOGIN_PREFIX + username,retryCount,60L * 15L); }else { redisUtil.set(RETRY_LOGIN_PREFIX + username,retryCount,redisUtil.getExpire(RETRY_LOGIN_PREFIX + username)); } @@ -146,7 +150,7 @@ public class LoginServiceImpl implements ILoginService { //update-begin--Author:wangshuai Date:20200714 for:登录日志没有记录人员 LoginUser loginUser = new LoginUser(); BeanUtils.copyProperties(sysUser, loginUser); - baseCommonService.addLog("用户名: " + username + ",登录成功!", CommonConstant.LOG_TYPE_1, null,loginUser); + baseCommonService.addLog(USER_NAME + username + ",登录成功!", CommonConstant.LOG_TYPE_1, null,loginUser); //update-end--Author:wangshuai Date:20200714 for:登录日志没有记录人员 return result; @@ -163,7 +167,7 @@ public class LoginServiceImpl implements ILoginService { LoginUser sysUser = sysBaseAPI.getUserByName(username); if(sysUser!=null) { //update-begin--Author:wangshuai Date:20200714 for:登出日志没有记录人员 - baseCommonService.addLog("用户名: "+sysUser.getRealname()+",退出成功!", CommonConstant.LOG_TYPE_1, null,sysUser); + baseCommonService.addLog(USER_NAME+sysUser.getRealname()+",退出成功!", CommonConstant.LOG_TYPE_1, null,sysUser); //update-end--Author:wangshuai Date:20200714 for:登出日志没有记录人员 log.info(" 用户名: "+sysUser.getRealname()+",退出成功! "); //清空用户登录Token缓存 @@ -182,7 +186,7 @@ public class LoginServiceImpl implements ILoginService { @Override public Result loginfo() { - Result result = new Result(); + Result result = new Result<>(); JSONObject obj = new JSONObject(); //update-begin--Author:zhangweijian Date:20190428 for:传入开始时间,结束时间参数 // 获取一天的开始和结束时间 @@ -209,7 +213,7 @@ public class LoginServiceImpl implements ILoginService { @Override public Result>> visitInfo() { - Result>> result = new Result>>(); + Result>> result = new Result<>(); Calendar calendar = new GregorianCalendar(); calendar.set(Calendar.HOUR_OF_DAY,0); calendar.set(Calendar.MINUTE,0); @@ -226,7 +230,7 @@ public class LoginServiceImpl implements ILoginService { @Override public Result selectDepart(SysUser user) { - Result result = new Result(); + Result result = new Result<>(); String username = user.getUsername(); if(oConvertUtils.isEmpty(username)) { LoginUser sysUser = (LoginUser)SecurityUtils.getSubject().getPrincipal(); @@ -236,14 +240,14 @@ public class LoginServiceImpl implements ILoginService { this.sysUserService.updateUserDepart(username, orgCode); SysUser sysUser = sysUserService.getUserByName(username); JSONObject obj = new JSONObject(); - obj.put("userInfo", sysUser); + obj.put(USER_INFO, sysUser); result.setResult(obj); return result; } @Override public Result sms(JSONObject jsonObject) { - Result result = new Result(); + Result result = new Result<>(); String mobile = jsonObject.get("mobile").toString(); //手机号模式 登录模式: "2" 注册模式: "1" String smsmode=jsonObject.get("smsmode").toString(); @@ -298,7 +302,7 @@ public class LoginServiceImpl implements ILoginService { } } - if (b == false) { + if (!b) { result.setMessage("短信验证码发送失败,请稍后重试"); result.setSuccess(false); return result; @@ -319,7 +323,7 @@ public class LoginServiceImpl implements ILoginService { @Override public Result phoneLogin(JSONObject jsonObject) { - Result result = new Result(); + Result result ; String phone = jsonObject.getString("mobile"); //校验用户有效性 @@ -338,15 +342,15 @@ public class LoginServiceImpl implements ILoginService { //用户信息 userInfo(sysUser, result); //添加日志 - baseCommonService.addLog("用户名: " + sysUser.getUsername() + ",登录成功!", CommonConstant.LOG_TYPE_1, null); + baseCommonService.addLog(USER_NAME + sysUser.getUsername() + ",登录成功!", CommonConstant.LOG_TYPE_1, null); return result; } @Override public Result> getEncryptedString() { - Result> result = new Result>(); - Map map = new HashMap(); + Result> result = new Result<>(); + Map map = new HashMap<>(); map.put("key", EncryptedString.key); map.put("iv",EncryptedString.iv); result.setResult(map); @@ -355,11 +359,11 @@ public class LoginServiceImpl implements ILoginService { @Override public Result randomImage(HttpServletResponse response, String key) { - Result res = new Result(); + Result res = new Result<>(); try { String code = RandomUtil.randomString(BASE_CHECK_CODES,4); String lowerCaseCode = code.toLowerCase(); - String realKey = MD5Util.MD5Encode(lowerCaseCode+key, "utf-8"); + String realKey = MD5Util.MD5Encode(lowerCaseCode+key, UTF_8); redisUtil.set(realKey, lowerCaseCode, 60); String base64 = RandImageUtil.generate(code); res.setSuccess(true); @@ -373,7 +377,7 @@ public class LoginServiceImpl implements ILoginService { @Override public Result mLogin(SysLoginModel sysLoginModel) { - Result result = new Result(); + Result result ; String username = sysLoginModel.getUsername(); String password = sysLoginModel.getPassword(); @@ -395,7 +399,7 @@ public class LoginServiceImpl implements ILoginService { if(oConvertUtils.isEmpty(orgCode)) { //如果当前用户无选择部门 查看部门关联信息 List departs = sysDepartService.queryUserDeparts(sysUser.getId()); - if (departs == null || departs.size() == 0) { + if (departs == null || departs.isEmpty()) { return Result.error("用户暂未归属部门,不可登录!"); } orgCode = departs.get(0).getOrgCode(); @@ -404,7 +408,7 @@ public class LoginServiceImpl implements ILoginService { } JSONObject obj = new JSONObject(); //用户登录信息 - obj.put("userInfo", sysUser); + obj.put(USER_INFO, sysUser); // 生成token String token = JwtUtil.sign(username, syspassword); @@ -417,7 +421,7 @@ public class LoginServiceImpl implements ILoginService { result.setResult(obj); result.setSuccess(true); result.setCode(200); - baseCommonService.addLog("用户名: " + username + ",登录成功[移动端]!", CommonConstant.LOG_TYPE_1, null); + baseCommonService.addLog(USER_NAME + username + ",登录成功[移动端]!", CommonConstant.LOG_TYPE_1, null); return result; } @@ -429,7 +433,7 @@ public class LoginServiceImpl implements ILoginService { return Result.error("验证码无效"); } String lowerCaseCaptcha = captcha.toLowerCase(); - String realKey = MD5Util.MD5Encode(lowerCaseCaptcha+checkKey, "utf-8"); + String realKey = MD5Util.MD5Encode(lowerCaseCaptcha+checkKey, UTF_8); Object checkCode = redisUtil.get(realKey); if(checkCode==null || !checkCode.equals(lowerCaseCaptcha)) { return Result.error("验证码错误"); @@ -457,6 +461,7 @@ public class LoginServiceImpl implements ILoginService { * @return */ private Result userInfo(SysUser sysUser, Result result) { + String multiDepart ="multi_depart"; String syspassword = sysUser.getPassword(); String username = sysUser.getUsername(); @@ -464,11 +469,11 @@ public class LoginServiceImpl implements ILoginService { JSONObject obj = new JSONObject(); List departs = sysDepartService.queryUserDeparts(sysUser.getId()); obj.put("departs", departs); - if (departs == null || departs.size() == 0) { - obj.put("multi_depart", 0); + if (departs == null || departs.isEmpty()) { + obj.put(multiDepart, 0); } else if (departs.size() == 1) { sysUserService.updateUserDepart(username, departs.get(0).getOrgCode()); - obj.put("multi_depart", 1); + obj.put(multiDepart, 1); } else { //查询当前是否有登录部门 // update-begin--Author:wangshuai Date:20200805 for:如果用戶为选择部门,数据库为存在上一次登录部门,则取一条存进去 @@ -477,7 +482,7 @@ public class LoginServiceImpl implements ILoginService { sysUserService.updateUserDepart(username, departs.get(0).getOrgCode()); } // update-end--Author:wangshuai Date:20200805 for:如果用戶为选择部门,数据库为存在上一次登录部门,则取一条存进去 - obj.put("multi_depart", 2); + obj.put(multiDepart, 2); } // update-begin--Author:sunjianlei Date:20210802 for:获取用户租户信息 @@ -486,7 +491,7 @@ public class LoginServiceImpl implements ILoginService { List tenantIdList = Arrays.asList(tenantIds.split(",")); // 该方法仅查询有效的租户,如果返回0个就说明所有的租户均无效。 List tenantList = sysTenantService.queryEffectiveTenant(tenantIdList); - if (tenantList.size() == 0) { + if (tenantList.isEmpty()) { return Result.error("与该用户关联的租户均已被冻结,无法登录!"); } else { obj.put("tenantList", tenantList); @@ -500,7 +505,7 @@ public class LoginServiceImpl implements ILoginService { redisUtil.expire(CommonConstant.PREFIX_USER_TOKEN + token, JwtUtil.EXPIRE_TIME / 1000); obj.put("token", token); - obj.put("userInfo", sysUser); + obj.put(USER_INFO, sysUser); obj.put("sysAllDictItems", sysDictService.queryAllDictItems()); result.setResult(obj); result.setMessage("登录成功");