Commit 266b48c7 authored by xuepeng.chang's avatar xuepeng.chang

用户session

parent c2ef13e0
......@@ -620,6 +620,13 @@ public class UserController implements IBaseController {
log.info("当前token对应的用户非当前租户,userId:{},用户tenantId:{},入参tenantId:{},token:{}", user.getId(), user.getTenantId(), tenantId, token);
return JsonResult.buildSuccessResult(null, tokenExchange);
}
if(Objects.nonNull(user) && Objects.nonNull(user.getId())){
User userDb = userService.findById(user.getId(), tenantId);
if(Objects.isNull(userDb)){
log.info("当前token对应的用户不存在,userId:{},用户tenantId:{},入参tenantId:{},token:{}", user.getId(), user.getTenantId(), tenantId, token);
return JsonResult.buildSuccessResult(null, tokenExchange);
}
}
tokenExchange.setLoginProperties(JSONObject.toJSONString(sessionStruct.getValues().getLoginProperties()));
tokenExchange.setUserId(user.getId());
......
......@@ -15,6 +15,7 @@ import cn.quantgroup.xyqb.service.http.IHttpService;
import cn.quantgroup.xyqb.service.session.ISessionService;
import cn.quantgroup.xyqb.service.session.aspect.UserBtRegisterFill;
import cn.quantgroup.xyqb.service.user.ILoginRecordService;
import cn.quantgroup.xyqb.service.user.IUserService;
import cn.quantgroup.xyqb.util.MqUtils;
import cn.quantgroup.xyqb.util.TenantUtil;
import com.alibaba.fastjson.JSON;
......@@ -48,6 +49,8 @@ public class SessionServiceImpl implements ISessionService {
@Resource
private ILoginRecordService loginRecordService;
@Resource
private IUserService userService;
@Value("${token.prefix}")
private String prefix;
......@@ -209,6 +212,11 @@ public class SessionServiceImpl implements ISessionService {
@Override
public void persistSession(String token, SessionValue sessionValue, Long time, Integer tenantId) {
//
if(!token.contains(prefix)){
log.info("token={},命中不能续期逻辑 id={}",token,sessionValue.getUser().getId());
return;
}
Timestamp current = new Timestamp(System.currentTimeMillis());
if (sessionValue == null) {
sessionValue = new SessionValue();
......@@ -235,6 +243,16 @@ public class SessionServiceImpl implements ISessionService {
stringRedisTemplate.opsForValue().set(key, json,
time, TimeUnit.SECONDS);
if (sessionValue.getUser() != null) {
User user = sessionValue.getUser();
// 只缓存存在的用户
if(Objects.nonNull(user.getId())){
User userDb = userService.findById(user.getId(), tenantId);
if(Objects.isNull(userDb)){
log.error("当前token对应的用户不存在,userId:{},用户tenantId:{},入参tenantId:{},token:{}", user.getId(), user.getTenantId(), tenantId, token);
}else{
log.info("[当前token对应的用户存在],userId:{},用户tenantId:{},入参tenantId:{},token:{}", user.getId(), user.getTenantId(), tenantId, token);
}
}
String generateLoginPropertiesKey = generateLoginPropertiesKey(sessionValue.getUser().getId(), sessionValue.getLoginProperties(), tenantId);
stringRedisTemplate.opsForValue().set(generateLoginPropertiesKey, token, time, TimeUnit.SECONDS);
log.info("[Session生命期延续],token:{},有效期:[24Hour]", 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