From aea5a0cc3bbd5c2d131a504e5aa2a124d9f131b3 Mon Sep 17 00:00:00 2001 From: puzhibing <393733352@qq.com> Date: 星期一, 10 四月 2023 11:46:54 +0800 Subject: [PATCH] 优化功能 --- management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/system/LoginController.java | 84 ------------------------------------------ 1 files changed, 0 insertions(+), 84 deletions(-) diff --git a/management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/system/LoginController.java b/management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/system/LoginController.java index f8f86c5..9978e45 100644 --- a/management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/system/LoginController.java +++ b/management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/system/LoginController.java @@ -50,12 +50,6 @@ @Autowired private IUserService userService; - private Map<String, Long> loginTime = new HashMap<>(); - - private Map<String, Integer> loginFailures = new HashMap<>(); - - private List<String> ips = Arrays.asList("127.0.0.1","192.168.0.247"); - /** @@ -121,82 +115,7 @@ */ @RequestMapping(value = "/login", method = RequestMethod.POST) public String loginVali(String username, String password, String remember, Model model, HttpServletRequest request) { - String ip = request.getHeader("x-forwarded-for"); - if (ip != null && ip.length() != 0 && !"unknown".equalsIgnoreCase(ip)) { - // 多次反向代理后会有多个ip值,第一个ip才是真实ip - if (ip.indexOf(",") != -1) { - ip = ip.split(",")[0]; - } - } - if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) { - ip = request.getHeader("Proxy-Client-IP"); - } - if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) { - ip = request.getHeader("WL-Proxy-Client-IP"); - } - if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) { - ip = request.getHeader("HTTP_CLIENT_IP"); - } - if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) { - ip = request.getHeader("HTTP_X_FORWARDED_FOR"); - } - if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) { - ip = request.getHeader("X-Real-IP"); - } - if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) { - ip = request.getRemoteAddr(); - } - if(!ips.contains(ip)){ - model.addAttribute("tips", "请在特定的网络下使用系统"); - return "/login.html"; - } - - Integer f = loginFailures.get(username); - f = f == null ? 0 : f; - // 校验账号,密码是否正确,如果错误,对次数进行加1 - IShiro shiroFactory = ShiroFactroy.me(); - User user = userService.getByAccount(username); - password = AESUtils.decrypt(password); - if(null == user){ - f++; - loginFailures.put(username, f); - }else { - // 校验密码 - ShiroUser shiroUser1 = shiroFactory.shiroUser(user); - SimpleAuthenticationInfo info = shiroFactory.info(shiroUser1, user, username); - String pass = ShiroKit.md5(password, user.getSalt()); - if(!info.getCredentials().equals(pass)){ - f++; - loginFailures.put(username, f); - if(f<5){ - model.addAttribute("number", "3"); - } - if(f==5){ - model.addAttribute("number", "5"); - } - return "/login.html"; - } - } model.addAttribute("number", "3"); - /*if(f > 5 ){ - model.addAttribute("tips", "登录次数过多,请等30分钟再试!"); - if (KaptchaUtil.getKaptchaOnOff()) { - String kaptcha = super.getPara("kaptcha").trim(); - String code = (String) super.getSession().getAttribute(Constants.KAPTCHA_SESSION_KEY); - if (ToolUtil.isEmpty(kaptcha) || !kaptcha.equalsIgnoreCase(code)) { - throw new InvalidKaptchaException(); - } - } - return "/login.html"; - }*/ - //验证验证码是否正确 -// if (KaptchaUtil.getKaptchaOnOff()) { -// String kaptcha = super.getPara("kaptcha").trim(); -// String code = (String) super.getSession().getAttribute(Constants.KAPTCHA_SESSION_KEY); -// if (ToolUtil.isEmpty(kaptcha) || !kaptcha.equalsIgnoreCase(code)) { -// throw new InvalidKaptchaException(); -// } -// } Subject currentUser = ShiroKit.getSubject(); UsernamePasswordToken token = new UsernamePasswordToken(username, password.toCharArray()); @@ -207,9 +126,6 @@ // } token.setRememberMe(false);//关闭记住我功能 currentUser.login(token); - - // 登录成功,错误次数值改0 - loginFailures.put(username, 0); ShiroUser shiroUser = ShiroKit.getUser(); super.getSession().setAttribute("shiroUser", shiroUser); -- Gitblit v1.7.1