add
This commit is contained in:
@ -166,12 +166,13 @@ public class SysLoginServiceImpl implements SysLoginService {
|
||||
UserAgent userAgent = UserAgentUtil.parse(request.getHeader("User-Agent"));
|
||||
String browser = userAgent.getBrowser().getName() + BaseConstant.LINE_JOIN_STR + userAgent.getVersion();
|
||||
String os = userAgent.getOs().getName();
|
||||
|
||||
if (!authConfigApiService.checkAllowBothOnline()) {
|
||||
redisService.set(SecurityConstant.LOGGED_USER_REDIS_KEY + username, deviceSn, TokenUtil.TOKEN_EXPIRE_HOUR_TIME * 3600);
|
||||
}
|
||||
OnlineUser onlineUser = new OnlineUser(deviceSn, username, nickname, ip, address, browser, os, new Date());
|
||||
onlineUserService.insert(onlineUser);
|
||||
redisService.set(SecurityConstant.LAST_LOGIN_USER_REDIS_KEY + username, deviceSn, TokenUtil.TOKEN_EXPIRE_HOUR_TIME * 3600);
|
||||
// 允许同时在线
|
||||
if (authConfigApiService.checkAllowBothOnline()) {
|
||||
redisService.hSet(SecurityConstant.LOGIN_USER_DEVICES_REDIS_KEY + username, deviceSn, 1, TokenUtil.TOKEN_EXPIRE_HOUR_TIME * 3600);
|
||||
}
|
||||
return onlineUser;
|
||||
}
|
||||
|
||||
|
@ -1,6 +1,8 @@
|
||||
package com.qiaoba.module.system.service.impl;
|
||||
|
||||
import cn.hutool.core.bean.BeanUtil;
|
||||
import com.qiaoba.api.auth.service.AuthConfigApiService;
|
||||
import com.qiaoba.api.auth.service.OnlineUserService;
|
||||
import com.qiaoba.api.auth.service.SysUserDetailsApiService;
|
||||
import com.qiaoba.api.system.entity.SysUser;
|
||||
import com.qiaoba.api.auth.constants.SecurityConstant;
|
||||
@ -59,16 +61,8 @@ public class SysUserDetailsServiceImpl implements UserDetailsService, SysUserDet
|
||||
SysUser user = sysUserService.selectByUsername(username);
|
||||
UserDetails details = createUserDetails(user);
|
||||
SecurityUser securityUser = BeanUtil.copyProperties(details, SecurityUser.class);
|
||||
securityUser.setDeviceSn(deviceSn);
|
||||
redisService.set(SecurityConstant.USER_DETAILS_REDIS_KEY + username, securityUser, TokenUtil.TOKEN_EXPIRE_HOUR_TIME * 3600);
|
||||
return details;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void deleteCache(String username, String deviceSn) {
|
||||
SecurityUser user = redisService.getObject(SecurityConstant.USER_DETAILS_REDIS_KEY + username, SecurityUser.class);
|
||||
if (Objects.nonNull(user) && deviceSn.equals(user.getDeviceSn())) {
|
||||
redisService.del(SecurityConstant.USER_DETAILS_REDIS_KEY + username);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user