diff --git a/suimangAdmin/src/main/java/com/iformall/controller/sys/HomeController.java b/suimangAdmin/src/main/java/com/iformall/controller/sys/HomeController.java index 33333c1..a524769 100644 --- a/suimangAdmin/src/main/java/com/iformall/controller/sys/HomeController.java +++ b/suimangAdmin/src/main/java/com/iformall/controller/sys/HomeController.java @@ -87,7 +87,9 @@ public class HomeController extends BaseController { //生成图片验证码 BufferedImage image = producer.createImage(text); //保存到shiro session - ShiroUtils.setSessionAttribute(Constants.KAPTCHA_SESSION_KEY, text); +// ShiroUtils.setSessionAttribute(Constants.KAPTCHA_SESSION_KEY, text); + String key = Constant.captchaPrev + ":" + getIpAddr(); + RedisCacheUtils.cache(redisTemplate, key, text, 60); logger.info("验证码接口-生成的验证码:{}", text); ServletOutputStream out = response.getOutputStream(); @@ -100,17 +102,26 @@ public class HomeController extends BaseController { public ResultData login(@RequestBody MallUserInfo user, HttpServletResponse response) { String ipaddress = getIpAddr(); logger.debug("[" + ipaddress + "] HomeController::doLogin"); - try { - String kaptcha = ShiroUtils.getKaptcha(Constants.KAPTCHA_SESSION_KEY); - logger.info("登录接口-验证码:{}", user.getCaptcha()); - logger.info("登录接口-生成的验证码:{}", kaptcha); - if(!user.getCaptcha().equalsIgnoreCase(kaptcha)){ - return new ResultData(ErrorCode.KAPCHA_NOT_EQUAL); - } - } catch (MallinkException e) { - logger.error("验证码" + e.getMessage()); - return new ResultData(ErrorCode.KAPCHA_NOT_VALID.getCode(), e.getMessage()); +// try { +// String kaptcha = ShiroUtils.getKaptcha(Constants.KAPTCHA_SESSION_KEY); +// logger.info("登录接口-验证码:{}", user.getCaptcha()); +// logger.info("登录接口-生成的验证码:{}", kaptcha); +// if(!user.getCaptcha().equalsIgnoreCase(kaptcha)){ +// return new ResultData(ErrorCode.KAPCHA_NOT_EQUAL); +// } +// } catch (MallinkException e) { +// logger.error("验证码" + e.getMessage()); +// return new ResultData(ErrorCode.KAPCHA_NOT_VALID.getCode(), e.getMessage()); +// } + String key = Constant.captchaPrev + ":" + getIpAddr(); + String code = RedisCacheUtils.getCacheString(redisTemplate, key); + if (StringUtils.isBlank(code)) { + return new ResultData(ErrorCode.SYS_PARAMETER_ERROR.getCode(), "验证码已过期"); } + if (!code.equals(user.getCaptcha())) { + return new ResultData(ErrorCode.SYS_PARAMETER_ERROR.getCode(), "验证码不正确"); + } + if (StringUtils.isBlank(user.getUsername()) || StringUtils.isBlank(user.getPassword())) { return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL);