From fd5414f82e6305eaf35297f63f9e7c95615f99e3 Mon Sep 17 00:00:00 2001 From: 疯狂的狮子li <15040126243@163.com> Date: 星期二, 13 七月 2021 13:34:10 +0800 Subject: [PATCH] Merge branch 'master' of https://gitee.com/y_project/RuoYi-Vue into dev --- ruoyi-framework/src/main/java/com/ruoyi/framework/web/service/SysLoginService.java | 47 +++++++++++++++++++++++++++++++++-------------- 1 files changed, 33 insertions(+), 14 deletions(-) diff --git a/ruoyi-framework/src/main/java/com/ruoyi/framework/web/service/SysLoginService.java b/ruoyi-framework/src/main/java/com/ruoyi/framework/web/service/SysLoginService.java index d0b9511..47258dd 100644 --- a/ruoyi-framework/src/main/java/com/ruoyi/framework/web/service/SysLoginService.java +++ b/ruoyi-framework/src/main/java/com/ruoyi/framework/web/service/SysLoginService.java @@ -12,6 +12,7 @@ import com.ruoyi.common.utils.MessageUtils; import com.ruoyi.common.utils.ServletUtils; import com.ruoyi.framework.config.properties.CaptchaProperties; +import com.ruoyi.system.service.ISysConfigService; import com.ruoyi.system.service.ISysUserService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.security.authentication.AuthenticationManager; @@ -47,6 +48,9 @@ private ISysUserService userService; @Autowired + private ISysConfigService configService; + + @Autowired private AsyncService asyncService; /** @@ -60,20 +64,12 @@ */ public String login(String username, String password, String code, String uuid) { - HttpServletRequest request = ServletUtils.getRequest(); - if(captchaProperties.getEnabled()) { - String verifyKey = Constants.CAPTCHA_CODE_KEY + uuid; - String captcha = redisCache.getCacheObject(verifyKey); - redisCache.deleteObject(verifyKey); - if (captcha == null) { - asyncService.recordLogininfor(username, Constants.LOGIN_FAIL, MessageUtils.message("user.jcaptcha.expire"), request); - throw new CaptchaExpireException(); - } - if (!code.equalsIgnoreCase(captcha)) { - asyncService.recordLogininfor(username, Constants.LOGIN_FAIL, MessageUtils.message("user.jcaptcha.error"), request); - throw new CaptchaException(); - } - } + boolean captchaOnOff = configService.selectCaptchaOnOff(); + // 楠岃瘉鐮佸紑鍏� + if (captchaOnOff) + { + validateCapcha(username, code, uuid); + } // 鐢ㄦ埛楠岃瘉 Authentication authentication = null; try @@ -103,6 +99,29 @@ } /** + * 鏍¢獙楠岃瘉鐮� + * + * @param username 鐢ㄦ埛鍚� + * @param code 楠岃瘉鐮� + * @param uuid 鍞竴鏍囪瘑 + * @return 缁撴灉 + */ + public void validateCapcha(String username, String code, String uuid) { + HttpServletRequest request = ServletUtils.getRequest(); + String verifyKey = Constants.CAPTCHA_CODE_KEY + uuid; + String captcha = redisCache.getCacheObject(verifyKey); + redisCache.deleteObject(verifyKey); + if (captcha == null) { + asyncService.recordLogininfor(username, Constants.LOGIN_FAIL, MessageUtils.message("user.jcaptcha.expire"), request); + throw new CaptchaExpireException(); + } + if (!code.equalsIgnoreCase(captcha)) { + asyncService.recordLogininfor(username, Constants.LOGIN_FAIL, MessageUtils.message("user.jcaptcha.error"), request); + throw new CaptchaException(); + } + } + + /** * 璁板綍鐧诲綍淇℃伅 */ public void recordLoginInfo(SysUser user) -- Gitblit v1.9.3