3 Commits

Author SHA1 Message Date
天道酬勤
87a6a203e7 Pre Merge pull request !378 from 天道酬勤/N/A 2025-03-07 04:57:07 +00:00
RuoYi
8c096cba8d 优化isAdmin方法,避免脱敏模块security依赖 2025-03-07 12:56:31 +08:00
邵立佳
eadcd8bf36 修复在线用户对象类型转换小概率异常BUG
Signed-off-by: 邵立佳 <418843795@qq.com>
2024-08-29 02:04:03 +00:00
5 changed files with 30 additions and 8 deletions

View File

@@ -8,6 +8,7 @@ import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.core.annotation.Excel;
import com.ruoyi.common.core.annotation.Excel.ColumnType;
import com.ruoyi.common.core.annotation.Excel.Type;
import com.ruoyi.common.core.constant.UserConstants;
import com.ruoyi.common.core.annotation.Excels;
import com.ruoyi.common.core.web.domain.BaseEntity;
import com.ruoyi.common.core.xss.Xss;
@@ -116,7 +117,7 @@ public class SysUser extends BaseEntity
public static boolean isAdmin(Long userId)
{
return userId != null && 1L == userId;
return UserConstants.isAdmin(userId);
}
public Long getDeptId()

View File

@@ -80,4 +80,9 @@ public class UserConstants
public static final int PASSWORD_MIN_LENGTH = 5;
public static final int PASSWORD_MAX_LENGTH = 20;
public static boolean isAdmin(Long userId)
{
return userId != null && 1L == userId;
}
}

View File

@@ -17,10 +17,10 @@
<dependencies>
<!-- RuoYi Common Security -->
<!-- RuoYi Common Core -->
<dependency>
<groupId>com.ruoyi</groupId>
<artifactId>ruoyi-common-security</artifactId>
<artifactId>ruoyi-common-core</artifactId>
</dependency>
</dependencies>

View File

@@ -8,10 +8,10 @@ import com.fasterxml.jackson.databind.JsonMappingException;
import com.fasterxml.jackson.databind.JsonSerializer;
import com.fasterxml.jackson.databind.SerializerProvider;
import com.fasterxml.jackson.databind.ser.ContextualSerializer;
import com.ruoyi.common.security.utils.SecurityUtils;
import com.ruoyi.common.core.constant.UserConstants;
import com.ruoyi.common.core.context.SecurityContextHolder;
import com.ruoyi.common.sensitive.annotation.Sensitive;
import com.ruoyi.common.sensitive.enums.DesensitizedType;
import com.ruoyi.system.api.model.LoginUser;
/**
* 数据脱敏序列化过滤
@@ -55,9 +55,9 @@ public class SensitiveJsonSerializer extends JsonSerializer<String> implements C
{
try
{
LoginUser securityUser = SecurityUtils.getLoginUser();
Long userId = SecurityContextHolder.getUserId();
// 管理员不脱敏
return !securityUser.getSysUser().isAdmin();
return !UserConstants.isAdmin(userId);
}
catch (Exception e)
{

View File

@@ -46,7 +46,23 @@ public class SysUserOnlineController extends BaseController
List<SysUserOnline> userOnlineList = new ArrayList<SysUserOnline>();
for (String key : keys)
{
LoginUser user = redisService.getCacheObject(key);
// 获取登录用户缓存对象
Object object = redisService.getCacheObject(key);
// 登录用户对象
LoginUser user;
// 判断object类型如果是JSONObject需要单独处理解决小概率类型转换异常问题
if (object instanceof JSONObject)
{
user = JSONObject.parseObject(JSONObject.toJSONString(object, JSONWriter.Feature.WriteNulls), LoginUser.class);
}
else if (object instanceof LoginUser)
{
user = (LoginUser) object;
}
else
{
throw new ServiceException("用户缓存对象类型异常");
}
if (StringUtils.isNotEmpty(ipaddr) && StringUtils.isNotEmpty(userName))
{
userOnlineList.add(userOnlineService.selectOnlineByInfo(ipaddr, userName, user));