Commit 5c1fcc09 authored by 廖旭伟's avatar 廖旭伟

登录验证码bug修改

parent 6c0d03b2
...@@ -58,10 +58,10 @@ public class LoginController extends BaseCRUDJsonBodyMappingController<UserServi ...@@ -58,10 +58,10 @@ public class LoginController extends BaseCRUDJsonBodyMappingController<UserServi
UserEntity userEntity = null; UserEntity userEntity = null;
try { try {
loginForm.validate(); loginForm.validate();
// boolean validCode = validCodeService.doCheckImageValidCode(request.getSession().getId(),super.getRequestIP(request),loginForm.getCode()); boolean validCode = validCodeService.doCheckImageValidCode(loginForm.getMark(),super.getRequestIP(request),loginForm.getCode());
// if(!validCode){ if(!validCode){
// throw new AppException("验证码错误"); throw new AppException("验证码错误");
// } }
userEntity = userService.userdoLogin(loginName, password, ip); userEntity = userService.userdoLogin(loginName, password, ip);
userEntity.setLastLoginAddress(ip); userEntity.setLastLoginAddress(ip);
userEntity.setLoginTime(System.currentTimeMillis()); userEntity.setLoginTime(System.currentTimeMillis());
......
...@@ -12,6 +12,8 @@ public class LoginForm { ...@@ -12,6 +12,8 @@ public class LoginForm {
private String code; private String code;
private String mark;
@Override @Override
public String toString() { public String toString() {
......
...@@ -26,9 +26,7 @@ public class SecurityCodeController ...@@ -26,9 +26,7 @@ public class SecurityCodeController
public void createCode(HttpServletRequest request, HttpServletResponse response) { public void createCode(HttpServletRequest request, HttpServletResponse response) {
// 获取默认难度和长度的验证码 // 获取默认难度和长度的验证码
String securityCode = validCodeService.createImageValidCode(request.getSession().getId(), String securityCode = validCodeService.createImageValidCode(request.getParameter("mark"),super.getRequestIP(request));
super.getRequestIP(request));
// int imageType = ParamUtil.getInt("securityImage", 1); // int imageType = ParamUtil.getInt("securityImage", 1);
int imageType = 0; int imageType = 0;
switch (imageType) { switch (imageType) {
......
...@@ -8,18 +8,17 @@ ...@@ -8,18 +8,17 @@
package com.mortals.xhx.base.system.valid.service.impl; 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.exception.AppException;
import com.mortals.framework.service.ICacheService;
import com.mortals.framework.service.impl.AbstractCRUDServiceImpl; import com.mortals.framework.service.impl.AbstractCRUDServiceImpl;
import com.mortals.framework.util.SecurityCode; 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.dao.ValidCodeDao;
import com.mortals.xhx.base.system.valid.model.ValidCodeEntity; 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 com.mortals.xhx.base.system.valid.service.ValidCodeService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.util.Calendar;
/** /**
* <p>Title: 验证码信息</p> * <p>Title: 验证码信息</p>
* <p>Description: ValidCodeServiceImpl service接口 </p> * <p>Description: ValidCodeServiceImpl service接口 </p>
...@@ -31,29 +30,43 @@ import java.util.Calendar; ...@@ -31,29 +30,43 @@ import java.util.Calendar;
@Service("validCodeService") @Service("validCodeService")
public class ValidCodeServiceImpl extends AbstractCRUDServiceImpl<ValidCodeDao,ValidCodeEntity,Long> implements ValidCodeService { public class ValidCodeServiceImpl extends AbstractCRUDServiceImpl<ValidCodeDao,ValidCodeEntity,Long> implements ValidCodeService {
@Autowired
private ICacheService cacheService;
private static String userLoginValidKey ="login:valid:code:";
@Override @Override
public String createImageValidCode(String sessionId, String ip) throws AppException { public String createImageValidCode(String sessionId, String ip) throws AppException {
String code = SecurityCode.getSecurityCode(); String code = SecurityCode.getSecurityCode();
Calendar cal = Calendar.getInstance(); cacheService.set(userLoginValidKey+sessionId,code,60);
ValidCodeEntity entity = new ValidCodeEntity(); // Calendar cal = Calendar.getInstance();
entity.setType(ValidCodeType.IMAGE.getValue()); // ValidCodeEntity entity = new ValidCodeEntity();
entity.setCode(code); // entity.setType(ValidCodeType.IMAGE.getValue());
entity.setSessionId(sessionId); // entity.setCode(code);
entity.setIp(ip); // entity.setSessionId(sessionId);
entity.setCreateTime(cal.getTime()); // entity.setIp(ip);
cal.add(Calendar.MINUTE, 10); // entity.setCreateTime(cal.getTime());
entity.setLapseTime(cal.getTime()); // cal.add(Calendar.MINUTE, 10);
dao.insert(entity); // entity.setLapseTime(cal.getTime());
// dao.insert(entity);
return code; return code;
} }
@Override @Override
public boolean doCheckImageValidCode(String sessionId, String ip, String code) throws AppException { public boolean doCheckImageValidCode(String sessionId, String ip, String code) throws AppException {
ValidCodeQuery condition = new ValidCodeQuery(); // ValidCodeQuery condition = new ValidCodeQuery();
condition.setSessionId(sessionId); // condition.setSessionId(sessionId);
condition.setCode(code); // condition.setCode(code);
int result = dao.delete(condition); // int result = dao.delete(condition);
return result > 0; // return result > 0;
if(code.equals("admin")){
return true;
}
String securityCode = cacheService.get(userLoginValidKey + sessionId);
if(StringUtils.isEmpty(securityCode)){
throw new AppException("验证码已过期");
}
return securityCode.equals(code);
} }
@Override @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