修改异常处理.

This commit is contained in:
lijiahang
2023-07-25 15:02:15 +08:00
parent f01f696d37
commit ee53ec6486
8 changed files with 49 additions and 54 deletions

View File

@@ -1,5 +1,6 @@
package com.orion.ops.module.infra.enums;
import com.orion.ops.framework.common.constant.ErrorCode;
import lombok.AllArgsConstructor;
import lombok.Getter;
@@ -45,4 +46,19 @@ public enum UserStatusEnum {
return null;
}
/**
* 检查用户状态
*
* @param status status
*/
public static void checkUserStatus(Integer status) {
if (UserStatusEnum.DISABLED.getStatus().equals(status)) {
// 禁用状态
throw ErrorCode.USER_DISABLED.exception();
} else if (UserStatusEnum.LOCKED.getStatus().equals(status)) {
// 锁定状态
throw ErrorCode.USER_LOCKED.exception();
}
}
}

View File

@@ -54,7 +54,7 @@ public class SecurityFrameworkServiceImpl implements SecurityFrameworkService {
// 获取登陆信息
LoginUser user = authenticationService.getLoginUser(tokenInfo.getId());
// 检查用户状态
this.checkUserStatus(user);
UserStatusEnum.checkUserStatus(user.getStatus());
return user;
}
@@ -78,17 +78,4 @@ public class SecurityFrameworkServiceImpl implements SecurityFrameworkService {
}
}
/**
* 检查用户状态
*
* @param user user
*/
private void checkUserStatus(LoginUser user) {
if (UserStatusEnum.DISABLED.getStatus().equals(user.getStatus())) {
throw ErrorCode.USER_DISABLED.exception();
} else if (UserStatusEnum.LOCKED.getStatus().equals(user.getStatus())) {
throw ErrorCode.USER_LOCKED.exception();
}
}
}

View File

@@ -8,7 +8,6 @@ import com.orion.lang.utils.Exceptions;
import com.orion.lang.utils.collect.Lists;
import com.orion.lang.utils.crypto.Signatures;
import com.orion.ops.framework.common.constant.Const;
import com.orion.ops.framework.common.constant.ErrorCode;
import com.orion.ops.framework.common.constant.ErrorMessage;
import com.orion.ops.framework.common.security.LoginUser;
import com.orion.ops.framework.common.utils.CryptoUtils;
@@ -75,7 +74,7 @@ public class AuthenticationServiceImpl implements AuthenticationService {
boolean passwordCorrect = this.checkPassword(request, user);
Valid.isTrue(passwordCorrect, ErrorMessage.USERNAME_PASSWORD_ERROR);
// 检查用户状态
this.checkUserStatus(user.getStatus());
UserStatusEnum.checkUserStatus(user.getStatus());
// 设置上次登录时间
this.setLastLoginTime(user.getId());
// 检查用户缓存
@@ -239,21 +238,6 @@ public class AuthenticationServiceImpl implements AuthenticationService {
return false;
}
/**
* 检查用户状态
*
* @param status status
*/
private void checkUserStatus(Integer status) {
if (UserStatusEnum.DISABLED.getStatus().equals(status)) {
// 禁用状态
throw ErrorCode.USER_DISABLED.exception();
} else if (UserStatusEnum.LOCKED.getStatus().equals(status)) {
// 锁定状态
throw ErrorCode.USER_LOCKED.exception();
}
}
/**
* 设置最后登录时间
*

View File

@@ -1,6 +1,7 @@
package com.orion.ops.module.infra.service.impl;
import com.orion.lang.utils.collect.Lists;
import com.orion.ops.framework.common.constant.Const;
import com.orion.ops.framework.common.security.LoginUser;
import com.orion.ops.framework.security.core.utils.SecurityUtils;
import com.orion.ops.module.infra.convert.SystemMenuConvert;
@@ -156,10 +157,10 @@ public class PermissionServiceImpl implements PermissionService {
// 查询角色菜单
Stream<SystemMenuCacheDTO> mergeStream;
if (RoleDefine.containsAdmin(roles)) {
// 管理员拥有全部权限
// 管理员拥有全部菜单
mergeStream = menuCache.stream();
} else {
// 当前用户所适配的角色
// 当前用户所适配的角色菜单
mergeStream = roles.stream()
.map(roleMenuCache::get)
.filter(Objects::nonNull)
@@ -187,15 +188,21 @@ public class PermissionServiceImpl implements PermissionService {
if (roles.isEmpty()) {
permissions = Lists.empty();
} else {
permissions = roles.stream()
.map(roleMenuCache::get)
.filter(Objects::nonNull)
.flatMap(Collection::stream)
.filter(s -> MenuStatusEnum.ENABLED.getStatus().equals(s.getStatus()))
.map(SystemMenuCacheDTO::getPermission)
.filter(Objects::nonNull)
.distinct()
.collect(Collectors.toList());
if (RoleDefine.containsAdmin(roles)) {
// 管理员拥有全部权限
permissions = Lists.of(Const.ASTERISK);
} else {
// 当前用户所适配的角色的权限
permissions = roles.stream()
.map(roleMenuCache::get)
.filter(Objects::nonNull)
.flatMap(Collection::stream)
.filter(s -> MenuStatusEnum.ENABLED.getStatus().equals(s.getStatus()))
.map(SystemMenuCacheDTO::getPermission)
.filter(Objects::nonNull)
.distinct()
.collect(Collectors.toList());
}
}
// 组装数据
return UserPermissionVO.builder()

View File

@@ -60,7 +60,7 @@ public class SystemRoleMenuServiceImpl implements SystemRoleMenuService {
// 查询菜单列表
List<SystemMenuDO> menuList = systemMenuDAO.selectBatchIds(menuIdList);
if (menuIdList.size() != menuList.size()) {
throw ErrorCode.DATA_ALTER.exception();
throw ErrorCode.CONFLICT.exception();
}
// 查询角色菜单
List<Long> beforeMenuIdList = systemRoleMenuDAO.of()

View File

@@ -1,7 +1,6 @@
package com.orion.ops.module.infra.service.impl;
import com.orion.lang.utils.collect.Lists;
import com.orion.ops.framework.common.constant.ErrorCode;
import com.orion.ops.framework.common.constant.ErrorMessage;
import com.orion.ops.framework.common.security.LoginUser;
import com.orion.ops.framework.common.utils.Valid;
@@ -75,10 +74,7 @@ public class SystemUserRoleServiceImpl implements SystemUserRoleService {
.map(SystemRoleDO::getCode)
.collect(Collectors.toList());
for (String roleCode : roleCodeList) {
// 角色不存在
if (!userRoleCodes.contains(roleCode)) {
throw ErrorCode.ROLE_PRESENT.exception(roleCode);
}
Valid.in(roleCode, userRoleCodes, ErrorMessage.ROLE_CODE_ABSENT, roleCode);
}
}
// 删除用户角色关联