瀏覽代碼

增加连续登录失败保存与统计

xusl 1 年之前
父節點
當前提交
beebbcd067

+ 4 - 1
backend/src/main/java/com/jiayue/ssi/controller/SysLogininforController.java

@@ -196,8 +196,11 @@ public class SysLogininforController {
                 List<SysLogininfor> successList = list.stream().filter(sysLogininfor -> "0".equals(sysLogininfor.getStatus())).collect(Collectors.toList());
                 recordMap.put("success", successList.size() + "");
                 // 登录失败统计
-                List<SysLogininfor> failList = list.stream().filter(sysLogininfor -> "1".equals(sysLogininfor.getStatus())).collect(Collectors.toList());
+                List<SysLogininfor> failList = list.stream().filter(sysLogininfor -> "1".equals(sysLogininfor.getStatus()) && "登录失败".equals(sysLogininfor.getMsg())).collect(Collectors.toList());
                 recordMap.put("fail", failList.size() + "");
+                // 连续登录失败统计
+                List<SysLogininfor> lxfailList = list.stream().filter(sysLogininfor -> "1".equals(sysLogininfor.getStatus()) && "连续登录失败".equals(sysLogininfor.getMsg())).collect(Collectors.toList());
+                recordMap.put("lxfail", lxfailList.size() + "");
                 // 登录ip个数统计
                 int ips = list.stream().collect(Collectors.collectingAndThen(Collectors.toCollection(() -> new TreeSet<>(Comparator.comparing(s -> s.getIpaddr()))), ArrayList::new)).size();
                 recordMap.put("ips", ips + "");

+ 4 - 2
backend/src/main/java/com/jiayue/ssi/handler/CustomAuthenticationFailureHandler.java

@@ -88,6 +88,8 @@ public class CustomAuthenticationFailureHandler extends SimpleUrlAuthenticationF
                     user.setErrNum(errNum);
                     sysUserService.updateUser(user);
                 } else {
+
+                    LoginFactory.recordLogininfor(username, Constants.LOGIN_FAIL, "连续登录失败");
                     errorTips = "用户锁定,稍后再试";
                     user.setErrNum(0);
                     user.setStatus("1");
@@ -102,9 +104,9 @@ public class CustomAuthenticationFailureHandler extends SimpleUrlAuthenticationF
 
                     // 通知系统管理员
                     if ("0".equals(noticeWay)){
-                        log.info("发送邮箱登录失败\r\n" +
+                        log.info("发送邮箱连续登录失败\r\n" +
                                 "↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓邮箱内容↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓"+
-                                "\r\n  账号:"+user.getUsername()+"  登录失败:"+errCount+"次,锁定账号! \r\n"     +
+                                "\r\n  账号:"+user.getUsername()+"  连续登录失败:"+errCount+"次,锁定账号! \r\n"     +
                                 "↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑邮箱内容↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑");
 //                        log.info("发送邮箱通知系统管理员后台输出======> "+"账号【"+user.getUsername()+"】登录失败"+errCount+"次,锁定账号!");
 //                        List<SysUser> sysUserList = sysUserService.selectUserByRole("1");

+ 4 - 3
ui/src/views/auditManager/logininforTotal/index.vue

@@ -34,9 +34,10 @@
       >
         <vxe-table-column field="day" title="日期"/>
         <vxe-table-column field="count" title="登录总次数"/>
-        <vxe-table-column field="success" title="成功次数"/>
-        <vxe-table-column field="fail" title="失败次数"/>
-        <vxe-table-column field="ips" title="ip个数"/>
+        <vxe-table-column field="success" title="登录成功次数"/>
+        <vxe-table-column field="fail" title="登录失败次数"/>
+        <vxe-table-column field="lxfail" title="连续登录失败数"/>
+<!--        <vxe-table-column field="ips" title="ip个数"/>-->
       </vxe-table>
     </div>
   </div>