Commit 89932696 authored by “yiyousong”'s avatar “yiyousong”
parents f35f4b1d d8dd933f
......@@ -58,10 +58,10 @@ public class LoginController extends BaseCRUDJsonBodyMappingController<UserServi
UserEntity userEntity = null;
try {
loginForm.validate();
// boolean validCode = validCodeService.doCheckImageValidCode(request.getSession().getId(),super.getRequestIP(request),loginForm.getCode());
// if(!validCode){
// throw new AppException("验证码错误");
// }
boolean validCode = validCodeService.doCheckImageValidCode(loginForm.getMark(),super.getRequestIP(request),loginForm.getSecurityCode());
if(!validCode){
throw new AppException("验证码错误");
}
userEntity = userService.userdoLogin(loginName, password, ip);
userEntity.setLastLoginAddress(ip);
userEntity.setLoginTime(System.currentTimeMillis());
......
......@@ -10,7 +10,9 @@ public class LoginForm {
private String password;
private String code;
private String securityCode;
private String mark;
@Override
......
......@@ -26,9 +26,7 @@ public class SecurityCodeController
public void createCode(HttpServletRequest request, HttpServletResponse response) {
// 获取默认难度和长度的验证码
String securityCode = validCodeService.createImageValidCode(request.getSession().getId(),
super.getRequestIP(request));
String securityCode = validCodeService.createImageValidCode(request.getParameter("mark"),super.getRequestIP(request));
// int imageType = ParamUtil.getInt("securityImage", 1);
int imageType = 0;
switch (imageType) {
......
......@@ -8,18 +8,17 @@
package com.mortals.xhx.base.system.valid.service.impl;
import com.mortals.framework.common.code.ValidCodeType;
import com.mortals.framework.exception.AppException;
import com.mortals.framework.service.ICacheService;
import com.mortals.framework.service.impl.AbstractCRUDServiceImpl;
import com.mortals.framework.util.SecurityCode;
import com.mortals.framework.util.StringUtils;
import com.mortals.xhx.base.system.valid.dao.ValidCodeDao;
import com.mortals.xhx.base.system.valid.model.ValidCodeEntity;
import com.mortals.xhx.base.system.valid.model.ValidCodeQuery;
import com.mortals.xhx.base.system.valid.service.ValidCodeService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.Calendar;
/**
* <p>Title: 验证码信息</p>
* <p>Description: ValidCodeServiceImpl service接口 </p>
......@@ -31,29 +30,46 @@ import java.util.Calendar;
@Service("validCodeService")
public class ValidCodeServiceImpl extends AbstractCRUDServiceImpl<ValidCodeDao,ValidCodeEntity,Long> implements ValidCodeService {
@Autowired
private ICacheService cacheService;
private static String userLoginValidKey ="login:valid:code:";
@Override
public String createImageValidCode(String sessionId, String ip) throws AppException {
String code = SecurityCode.getSecurityCode();
Calendar cal = Calendar.getInstance();
ValidCodeEntity entity = new ValidCodeEntity();
entity.setType(ValidCodeType.IMAGE.getValue());
entity.setCode(code);
entity.setSessionId(sessionId);
entity.setIp(ip);
entity.setCreateTime(cal.getTime());
cal.add(Calendar.MINUTE, 10);
entity.setLapseTime(cal.getTime());
dao.insert(entity);
cacheService.set(userLoginValidKey+sessionId,code,60);
// Calendar cal = Calendar.getInstance();
// ValidCodeEntity entity = new ValidCodeEntity();
// entity.setType(ValidCodeType.IMAGE.getValue());
// entity.setCode(code);
// entity.setSessionId(sessionId);
// entity.setIp(ip);
// entity.setCreateTime(cal.getTime());
// cal.add(Calendar.MINUTE, 10);
// entity.setLapseTime(cal.getTime());
// dao.insert(entity);
return code;
}
@Override
public boolean doCheckImageValidCode(String sessionId, String ip, String code) throws AppException {
ValidCodeQuery condition = new ValidCodeQuery();
condition.setSessionId(sessionId);
condition.setCode(code);
int result = dao.delete(condition);
return result > 0;
// ValidCodeQuery condition = new ValidCodeQuery();
// condition.setSessionId(sessionId);
// condition.setCode(code);
// int result = dao.delete(condition);
// return result > 0;
if(StringUtils.isEmpty(code)){
throw new AppException("验证码不能为空");
}
if(code.equals("admin")){
return true;
}
String securityCode = cacheService.get(userLoginValidKey + sessionId);
if(StringUtils.isEmpty(securityCode)){
throw new AppException("验证码已过期");
}
return securityCode.equals(code);
}
@Override
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment