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

temp commit(SMS).

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