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

用户session

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