Commit 9522d2e7 authored by 王亮's avatar 王亮

temp commit(SMS).

parent 86b13e14
......@@ -43,7 +43,8 @@ public enum BizExceptionEnum {
ERROR_USAGE("2022","参数校验失败,用户登录语音验证码usage不正确"),
ERROR_SEND_SMS("2023","验证码发送失败"),
//通用记录
ERROR_PARAM("4000","参数不错误");
ERROR_PARAM("4000","参数不错误"),
INVALID_SMS_CODE("4001","验证码失效,请重新获取");
private final String businessCode;
private final String msg;
......
......@@ -50,9 +50,7 @@ public class TokenInterceptor implements HandlerInterceptor {
} else {
//如果是排除的接口,同时sessionStruct为空,这时候初始化租户和来源字段
if (sessionStruct == null) {
sessionStruct = XyqbSessionContextHolder.initXSession();
sessionService.persistSession(sessionStruct.getSid(), sessionStruct.getValues(), sessionStruct.getTenantId());
XyqbSessionContextHolder.initXSession();
}
}
......
......@@ -105,9 +105,9 @@ public class SmsServiceImpl implements ISmsService {
public boolean verifyPhoneAndCode(SMSVerifyReq smsVerifyReq) {
// 非生产环境直接跳过验证码检验
if (!TechEnvironment.isPro()) {
return true;
}
// if (!TechEnvironment.isPro()) {
// return true;
// }
SessionStruct sessionStruct = XyqbSessionContextHolder.getXSession();
String key;
if (sessionStruct == null) {
......
......@@ -32,6 +32,14 @@ public class VerificationCodeContext {
}
public boolean verify(SMSVerifyReq smsVerifyReq) {
return smsService.verifyPhoneAndCode(smsVerifyReq);
if (!smsService.verifyPhoneAndCode(smsVerifyReq)) {
// 是否需要重新发送短信验证码
if (smsService.needResendCode(smsVerifyReq.getPhoneNo())) {
throw new BizException(BizExceptionEnum.INVALID_SMS_CODE);
}
throw new BizException(BizExceptionEnum.ERROR_SMS_CODE);
}
return true;
}
}
......@@ -13,6 +13,7 @@ import org.springframework.web.context.request.RequestContextHolder;
import org.springframework.web.context.request.ServletRequestAttributes;
import javax.servlet.http.HttpServletRequest;
import java.util.UUID;
/**
* Created by Miraculous on 2016/12/29.
......@@ -35,7 +36,7 @@ public class XyqbSessionContextHolder {
sessionStruct = getXSessionFromRedis();
threadSession.set(sessionStruct);
}
if(sessionStruct!=null && sessionStruct.getValues()!=null && sessionStruct.getValues().getLoginProperties()!=null){
if (sessionStruct != null && sessionStruct.getValues() != null && sessionStruct.getValues().getLoginProperties() != null) {
sessionStruct.setStmsUserId(sessionStruct.getValues().getLoginProperties().getStmsUserId());
sessionStruct.setStmsUserName(sessionStruct.getValues().getLoginProperties().getStmsUserName());
}
......@@ -45,9 +46,10 @@ public class XyqbSessionContextHolder {
public static SessionStruct initXSession() {
SessionStruct sessionStruct = threadSession.get();
if (sessionStruct == null) {
if (sessionStruct == null) {
sessionStruct = new SessionStruct();
sessionStruct.setSid(UUID.randomUUID().toString());
HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest();
String tenantId = request.getHeader(Constants.X_AUTH_TENANT);
String registered_from = request.getHeader(Constants.X_AUTH_FROM);
......@@ -63,6 +65,14 @@ public class XyqbSessionContextHolder {
}
sessionStruct.setScDeviceId(request.getHeader("scDeviceId"));
sessionStruct.setTerminal(request.getHeader("terminal"));
SessionValue sessionValue = new SessionValue();
LoginProperties loginProperties = new LoginProperties();
loginProperties.setTenantId(Integer.valueOf(tenantId));
loginProperties.setCreatedFrom(Long.valueOf(registered_from));
sessionValue.setLoginProperties(loginProperties);
sessionStruct.setValues(sessionValue);
threadSession.set(sessionStruct);
} else {
HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest();
......@@ -131,11 +141,16 @@ public class XyqbSessionContextHolder {
}
try {
SessionValue values = JSON.parseObject(result, SessionValue.class);
SessionStruct sessionStruct = new SessionStruct();
if (values == null) {
log.warn("[XyqbSessionContextHolder][getXSessionFromRedis] session data 序列化失败:token:{},linkTokekn:{},sessionValue:{}", token, linkToken, result);
return null;
} else {
if (values.getLoginProperties() != null) {
sessionStruct.setTenantId(values.getLoginProperties().getTenantId());
sessionStruct.setRegisteredFrom(values.getLoginProperties().getCreatedFrom());
}
}
SessionStruct sessionStruct = new SessionStruct();
sessionStruct.setSid(token);
sessionStruct.setValues(values);
sessionStruct.setExpire(redisTemplate.getExpire(Constants.Session.USER_SESSION_CACHE + token));
......
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