|
@@ -42,15 +42,15 @@ public class LoginController {
|
|
|
private EvaluationService evaluationService;
|
|
|
@Autowired
|
|
|
private WindowsService windowsService;
|
|
|
- @Autowired
|
|
|
- private LoginErrService loginErrService;
|
|
|
+ //@Autowired
|
|
|
+ //private LoginErrService loginErrService;
|
|
|
@Autowired
|
|
|
private DictDataService dictDataService;
|
|
|
/**登录错误次数 锁定账户临界值*/
|
|
|
- private static final int LOGIN__ERR_COUNT = 5;
|
|
|
- private static final int LOGIN__ERR_COUNT_TIME = 1;
|
|
|
- private static final int LOGIN__ERR_MAX_COUNT = 10;
|
|
|
- private static final int LOGIN__ERR_MAX_COUNT_TIME = 2;
|
|
|
+ //private static final int LOGIN__ERR_COUNT = 10000;
|
|
|
+ //private static final int LOGIN__ERR_COUNT_TIME = 1;
|
|
|
+ //private static final int LOGIN__ERR_MAX_COUNT = 1000000;
|
|
|
+ //private static final int LOGIN__ERR_MAX_COUNT_TIME = 2;
|
|
|
/**
|
|
|
* 登录
|
|
|
* @param userParam
|
|
@@ -96,54 +96,59 @@ public class LoginController {
|
|
|
resultMap.put("message", "登录失败,账号状态为非在职,请联系管理员");
|
|
|
return resultMap;
|
|
|
}
|
|
|
- LoginErr loginErr = loginErrService.queryLoginErrByUserCode(user.getUserCode());
|
|
|
- Date now = new Date();
|
|
|
- try {
|
|
|
- if (!userParam.getPassword().equals(user.getPassword())) {
|
|
|
- if(loginErr == null){
|
|
|
- loginErr = new LoginErr(user.getUserCode(),now,1,0);
|
|
|
- }else {
|
|
|
- if(loginErr.getLoginErrCount() >= LOGIN__ERR_COUNT){
|
|
|
- loginErr.setLockFlag(1);
|
|
|
- }
|
|
|
- loginErr.setLastLoginErrTime(now);
|
|
|
- loginErr.setLoginErrCount(loginErr.getLoginErrCount()+1);
|
|
|
- }
|
|
|
-
|
|
|
- String errMsg = "登录失败,工号或者密码错误,还剩余"+(LOGIN__ERR_COUNT-loginErr.getLoginErrCount())+"次,连续5次密码错误,账户将锁定10分钟,请重新输入";
|
|
|
- if(loginErr.getLoginErrCount() >= LOGIN__ERR_COUNT && loginErr.getLoginErrCount() < LOGIN__ERR_MAX_COUNT){
|
|
|
- errMsg = "登录失败次数大于等于" + LOGIN__ERR_COUNT + "次,请" + LOGIN__ERR_COUNT_TIME + "分钟后再登录";
|
|
|
- }else if(loginErr.getLoginErrCount() >= LOGIN__ERR_MAX_COUNT){
|
|
|
- errMsg = "登录失败次数大于等于" + LOGIN__ERR_MAX_COUNT + "次,请" + LOGIN__ERR_MAX_COUNT_TIME + "分钟后再登录";
|
|
|
- }
|
|
|
- loginErrService.addLoginErr(loginErr);
|
|
|
- resultMap.put("code", -1);
|
|
|
- resultMap.put("message",errMsg);
|
|
|
- return resultMap;
|
|
|
- }
|
|
|
- } catch (Exception e) {
|
|
|
- log.error("校验用户名和密码错误,错误信息:{}", e);
|
|
|
+ //LoginErr loginErr = loginErrService.queryLoginErrByUserCode(user.getUserCode());
|
|
|
+ if(!userParam.getPassword().equals(user.getPassword())){
|
|
|
resultMap.put("code", -1);
|
|
|
- resultMap.put("message", "登录失败,系统发生未知错误,请重稍后重试或联系管理员");
|
|
|
+ resultMap.put("message","用户名或密码错误!");
|
|
|
return resultMap;
|
|
|
}
|
|
|
- if(loginErr !=null && loginErr.getLockFlag() == 1){
|
|
|
- long diffTime = cn.hutool.core.date.DateUtil.between(loginErr.getLastLoginErrTime(),new Date(), DateUnit.MINUTE);
|
|
|
- if(loginErr.getLoginErrCount() >= LOGIN__ERR_COUNT && loginErr.getLoginErrCount() < LOGIN__ERR_MAX_COUNT){
|
|
|
- if(diffTime < LOGIN__ERR_COUNT_TIME){
|
|
|
- resultMap.put("code", -1);
|
|
|
- resultMap.put("message", "登录失败次数大于等于"+LOGIN__ERR_COUNT+"次,请"+(LOGIN__ERR_COUNT_TIME-diffTime)+"分钟后再登录");
|
|
|
- return resultMap;
|
|
|
- }
|
|
|
- }else if(loginErr.getLoginErrCount() >= LOGIN__ERR_MAX_COUNT){
|
|
|
- if(diffTime < LOGIN__ERR_MAX_COUNT_TIME){
|
|
|
- resultMap.put("code", -1);
|
|
|
- resultMap.put("message", "登录失败次数大于等于"+LOGIN__ERR_MAX_COUNT+"次,请"+(LOGIN__ERR_MAX_COUNT_TIME-diffTime)+"分钟后再登录");
|
|
|
- return resultMap;
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- loginErrService.deleteLoginErrByUserCode(user.getUserCode());
|
|
|
+ Date now = new Date();
|
|
|
+ //try {
|
|
|
+ // if (!userParam.getPassword().equals(user.getPassword())) {
|
|
|
+ // if(loginErr == null){
|
|
|
+ // loginErr = new LoginErr(user.getUserCode(),now,1,0);
|
|
|
+ // }else {
|
|
|
+ // if(loginErr.getLoginErrCount() >= LOGIN__ERR_COUNT){
|
|
|
+ // loginErr.setLockFlag(1);
|
|
|
+ // }
|
|
|
+ // loginErr.setLastLoginErrTime(now);
|
|
|
+ // loginErr.setLoginErrCount(loginErr.getLoginErrCount()+1);
|
|
|
+ // }
|
|
|
+ //
|
|
|
+ // String errMsg = "登录失败,工号或者密码错误,还剩余"+(LOGIN__ERR_COUNT-loginErr.getLoginErrCount())+"次,连续5次密码错误,账户将锁定10分钟,请重新输入";
|
|
|
+ // if(loginErr.getLoginErrCount() >= LOGIN__ERR_COUNT && loginErr.getLoginErrCount() < LOGIN__ERR_MAX_COUNT){
|
|
|
+ // errMsg = "登录失败次数大于等于" + LOGIN__ERR_COUNT + "次,请" + LOGIN__ERR_COUNT_TIME + "分钟后再登录";
|
|
|
+ // }else if(loginErr.getLoginErrCount() >= LOGIN__ERR_MAX_COUNT){
|
|
|
+ // errMsg = "登录失败次数大于等于" + LOGIN__ERR_MAX_COUNT + "次,请" + LOGIN__ERR_MAX_COUNT_TIME + "分钟后再登录";
|
|
|
+ // }
|
|
|
+ // loginErrService.addLoginErr(loginErr);
|
|
|
+ // resultMap.put("code", -1);
|
|
|
+ // resultMap.put("message",errMsg);
|
|
|
+ // return resultMap;
|
|
|
+ // }
|
|
|
+ //} catch (Exception e) {
|
|
|
+ // log.error("校验用户名和密码错误,错误信息:{}", e);
|
|
|
+ // resultMap.put("code", -1);
|
|
|
+ // resultMap.put("message", "登录失败,系统发生未知错误,请重稍后重试或联系管理员");
|
|
|
+ // return resultMap;
|
|
|
+ //}
|
|
|
+ //if(loginErr !=null && loginErr.getLockFlag() == 1){
|
|
|
+ // long diffTime = cn.hutool.core.date.DateUtil.between(loginErr.getLastLoginErrTime(),new Date(), DateUnit.MINUTE);
|
|
|
+ // if(loginErr.getLoginErrCount() >= LOGIN__ERR_COUNT && loginErr.getLoginErrCount() < LOGIN__ERR_MAX_COUNT){
|
|
|
+ // if(diffTime < LOGIN__ERR_COUNT_TIME){
|
|
|
+ // resultMap.put("code", -1);
|
|
|
+ // resultMap.put("message", "登录失败次数大于等于"+LOGIN__ERR_COUNT+"次,请"+(LOGIN__ERR_COUNT_TIME-diffTime)+"分钟后再登录");
|
|
|
+ // return resultMap;
|
|
|
+ // }
|
|
|
+ // }else if(loginErr.getLoginErrCount() >= LOGIN__ERR_MAX_COUNT){
|
|
|
+ // if(diffTime < LOGIN__ERR_MAX_COUNT_TIME){
|
|
|
+ // resultMap.put("code", -1);
|
|
|
+ // resultMap.put("message", "登录失败次数大于等于"+LOGIN__ERR_MAX_COUNT+"次,请"+(LOGIN__ERR_MAX_COUNT_TIME-diffTime)+"分钟后再登录");
|
|
|
+ // return resultMap;
|
|
|
+ // }
|
|
|
+ // }
|
|
|
+ //}
|
|
|
+ //loginErrService.deleteLoginErrByUserCode(user.getUserCode());
|
|
|
if (dictDataService.queryDictVlaue("1.5", "control_expir_flag","0").equals("1")) {
|
|
|
TokenUtil.USER_CONTROL_MAP.put(user.getUserCode(), new UserControls(user.getUserCode(), now));
|
|
|
}else {
|