【fix sonar】 LoginServiceImpl.java文件

This commit is contained in:
tianwenbo
2023-03-06 18:01:17 +08:00
parent 7eb32dd653
commit 9cff1276ee
@@ -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<JSONObject> login(SysLoginModel sysLoginModel) {
Result<JSONObject> result = new Result<JSONObject>();
Result<JSONObject> 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<JSONObject> loginfo() {
Result<JSONObject> result = new Result<JSONObject>();
Result<JSONObject> 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<List<Map<String, Object>>> visitInfo() {
Result<List<Map<String,Object>>> result = new Result<List<Map<String,Object>>>();
Result<List<Map<String,Object>>> 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<JSONObject> selectDepart(SysUser user) {
Result<JSONObject> result = new Result<JSONObject>();
Result<JSONObject> 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<String> sms(JSONObject jsonObject) {
Result<String> result = new Result<String>();
Result<String> 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<JSONObject> phoneLogin(JSONObject jsonObject) {
Result<JSONObject> result = new Result<JSONObject>();
Result<JSONObject> 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<Map<String, String>> getEncryptedString() {
Result<Map<String,String>> result = new Result<Map<String,String>>();
Map<String,String> map = new HashMap<String,String>();
Result<Map<String,String>> result = new Result<>();
Map<String,String> 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<String> randomImage(HttpServletResponse response, String key) {
Result<String> res = new Result<String>();
Result<String> 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<JSONObject> mLogin(SysLoginModel sysLoginModel) {
Result<JSONObject> result = new Result<JSONObject>();
Result<JSONObject> result ;
String username = sysLoginModel.getUsername();
String password = sysLoginModel.getPassword();
@@ -395,7 +399,7 @@ public class LoginServiceImpl implements ILoginService {
if(oConvertUtils.isEmpty(orgCode)) {
//如果当前用户无选择部门 查看部门关联信息
List<SysDepart> 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<JSONObject> userInfo(SysUser sysUser, Result<JSONObject> 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<SysDepart> 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<String> tenantIdList = Arrays.asList(tenantIds.split(","));
// 该方法仅查询有效的租户,如果返回0个就说明所有的租户均无效。
List<SysTenant> 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("登录成功");