From 1e3d3b2732632c6d483a2641eb369634a8ce5bcc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=BB=84=E6=B5=B7?= <10402852@qq.com> Date: Thu, 12 Sep 2024 18:36:55 +0800 Subject: [PATCH] 'commit' --- ds-base/Dockerfile | 4 +- ds-base/WebRoot/html/login.html | 31 +------- .../Controller/LoginPersonController.java | 78 +------------------ 3 files changed, 6 insertions(+), 107 deletions(-) diff --git a/ds-base/Dockerfile b/ds-base/Dockerfile index f62f946e..beafc578 100644 --- a/ds-base/Dockerfile +++ b/ds-base/Dockerfile @@ -12,9 +12,9 @@ COPY ./WebRoot /root/WebRoot COPY ./target /root/target # 安装中文字体 -RUN apt-get update && apt-get install -y fonts-wqy-zenhei +#RUN apt-get update && apt-get install -y fonts-wqy-zenhei # 设置环境变量 -ENV LANG C.UTF-8 +#ENV LANG C.UTF-8 #设置这个环境变量后,您可以在Docker容器中启动Java应用程序时使用这些参数。 ENV JAVA_OPTS="-Xms512m -Xmx1024m" diff --git a/ds-base/WebRoot/html/login.html b/ds-base/WebRoot/html/login.html index 02365e4f..4d56ac27 100644 --- a/ds-base/WebRoot/html/login.html +++ b/ds-base/WebRoot/html/login.html @@ -45,15 +45,6 @@ -
-
- - - 点击图片刷新校验码 -
-
- @@ -72,10 +63,6 @@ getPageInfo(); }); - //刷新验证码 - function refreshCaptcha() { - $("#userCaptchaImage").attr("src", "/dsBase/loginPerson/getCaptcha?rnd=" + Math.random().toString().slice(-6)); - } $(document).keydown(function (event) { if (event.keyCode === 13) {//回车键对应code值为13 @@ -86,12 +73,11 @@ function doLogin() { var username = $("#usernameTxt").val(); var password = $("#passwordTxt").val(); - var captcha = $("#captchaTxt").val(); if (username.length === 0 || password.length === 0) { alert("用户名或密码不允许为空!") return; } - userLogin(username, password, captcha); + userLogin(username, password); } //用户名登录 @@ -100,15 +86,14 @@ var encrypt = new JSEncrypt(); encrypt.setPublicKey(publicKey); - if (userLoginCheck(username, password, captcha)) { + if (userLoginCheck(username, password)) { $.ajax({ type: "POST", dataType: "json", url: "/dsBase/loginPerson/doLogin", data: { "username": username, - "password": encrypt.encrypt(password), - "captcha": captcha + "password": encrypt.encrypt(password) }, async: false, success: function (result) { @@ -135,19 +120,9 @@ alert("密码不允许为空!"); return false; } - if (captcha == null || captcha == "") { - alert("验证码不允许为空!"); - return false; - } return true; } - //开启错误提示 - function showError(error) { - $(".form-error").find("label").html(error); - $(".form-error").show(); - } - //获取页面信息 diff --git a/ds-base/src/main/java/com/dsideal/base/LoginPerson/Controller/LoginPersonController.java b/ds-base/src/main/java/com/dsideal/base/LoginPerson/Controller/LoginPersonController.java index d4f4ed62..98cb8b5a 100644 --- a/ds-base/src/main/java/com/dsideal/base/LoginPerson/Controller/LoginPersonController.java +++ b/ds-base/src/main/java/com/dsideal/base/LoginPerson/Controller/LoginPersonController.java @@ -31,59 +31,9 @@ public class LoginPersonController extends Controller { LoginPersonModel model = new LoginPersonModel(); @Before({POST.class}) - public void doLogin(String username, String password, String captcha) { + public void doLogin(String username, String password) { JSONObject resultJson = new JSONObject(); try { - if (StrKit.isBlank(captcha)) { - resultJson.put("success", false); - resultJson.put("msg", "验证码不能为空!"); - renderJson(resultJson); - return; - } - if (getSession().getAttribute("captcha") == null) { - resultJson.put("success", false); - resultJson.put("msg", "在浏览器会话中没有检查到验证码,你的行为将会记录!"); - renderJson(resultJson); - return; - } - String memory_captcha = getSession().getAttribute("captcha").toString().toLowerCase(); - - //验证码错误次数 - String checkCodeKey = "Yzm_error_" + username; - int CheckCodeErrCnt = 4; //最多允许错几次 4+1 - int CheckCodecntNum = 0; //错几次了 - if (Redis.use().exists(checkCodeKey)) - CheckCodecntNum = Integer.parseInt(Redis.use().get(checkCodeKey).toString()); - if (CheckCodecntNum > CheckCodeErrCnt) { - resultJson.put("success", false); - resultJson.put("msg", "账号已被停用5分钟,请稍后再试!"); - renderJson(resultJson); - return; - } - if (!memory_captcha.equals(captcha.toLowerCase())) { - CheckCodecntNum = 1; - if (Redis.use().exists(checkCodeKey)) - CheckCodecntNum = Integer.parseInt(Redis.use().get(checkCodeKey).toString()) + CheckCodecntNum; - Redis.use().set(checkCodeKey, String.valueOf(CheckCodecntNum)); - Redis.use().expire(checkCodeKey, 60 * 5); - - if (CheckCodecntNum == CheckCodeErrCnt) { - resultJson.put("success", false); - resultJson.put("msg", "验证码连续输入错误" + CheckCodecntNum + "次,再错误一次将被封号5分钟!"); - renderJson(resultJson); - return; - } - if (CheckCodecntNum > CheckCodeErrCnt) { - resultJson.put("success", false); - resultJson.put("msg", "验证码连续输入错误5次,账号被停用5分钟,请稍后再试!"); - renderJson(resultJson); - return; - } - resultJson.put("success", false); - resultJson.put("msg", "验证码不正确!"); - renderJson(resultJson); - return; - } if (StrKit.isBlank(username)) { resultJson.put("success", false); resultJson.put("msg", "用户名不允许为空!"); @@ -143,7 +93,6 @@ public class LoginPersonController extends Controller { } //去掉限制 Redis.use().del(PassWordKey); - Redis.use().del(checkCodeKey); //防止用户攻击修改Cookie Map _map = new HashMap(); _map.put("identity_id", loginMap.get("identity_id")); @@ -419,29 +368,4 @@ public class LoginPersonController extends Controller { System.setProperty("java.awt.headless", "true"); } /*****打印帐号和输出EXCEL的功能结束*********************************************************/ - // /dsBase/loginPerson/getCaptcha - @Before({GET.class}) - public void getCaptcha() { - HttpServletResponse response = getResponse(); - // 设置相应类型,告诉浏览器输出的内容为图片 - response.setContentType("image/jpeg"); - // 不缓存此内容 - response.setHeader("Pragma", "No-cache"); - response.setHeader("Cache-Control", "no-cache"); - response.setDateHeader("Expire", 0); - try { - HttpSession session = getRequest().getSession(); - LineCaptcha captcha = CaptchaUtil.createLineCaptcha(80, 42, 4, 10); - // 重新生成code - captcha.createCode(); - //写入session - session.removeAttribute("captcha"); - session.setAttribute("captcha", captcha.getCode()); - // 将内存中的图片通过流动形式输出到客户端 - captcha.write(response.getOutputStream()); - } catch (Exception e) { - e.printStackTrace(); - } - renderNull(); - } } \ No newline at end of file