Переглянути джерело

feat:修改登录验证码校验逻辑

photo
xmzhao71 1 рік тому
джерело
коміт
9b28b730f1
1 змінених файлів з 22 додано та 11 видалено
  1. +22
    -11
      suimangAdmin/src/main/java/com/iformall/controller/sys/HomeController.java

+ 22
- 11
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);


Завантаження…
Відмінити
Зберегти