diff --git a/src/main/java/com/youlai/system/security/util/SecurityUtils.java b/src/main/java/com/youlai/system/security/util/SecurityUtils.java index a2570460..2b0550a1 100644 --- a/src/main/java/com/youlai/system/security/util/SecurityUtils.java +++ b/src/main/java/com/youlai/system/security/util/SecurityUtils.java @@ -1,64 +1,80 @@ package com.youlai.system.security.util; import cn.hutool.core.collection.CollectionUtil; -import cn.hutool.core.convert.Convert; import cn.hutool.core.util.StrUtil; import com.youlai.system.common.constant.SystemConstants; import com.youlai.system.security.model.SysUserDetails; import org.springframework.security.core.Authentication; import org.springframework.security.core.GrantedAuthority; import org.springframework.security.core.context.SecurityContextHolder; -import org.springframework.util.PatternMatchUtils; import java.util.Collection; import java.util.Collections; +import java.util.Optional; import java.util.Set; import java.util.stream.Collectors; +/** + * Spring Security 工具类 + * + * @author Ray + * @since 2021/1/10 + */ public class SecurityUtils { /** * 获取当前登录人信息 * - * @return SysUserDetails + * @return Optional */ - public static SysUserDetails getUser() { + public static Optional getUser() { Authentication authentication = SecurityContextHolder.getContext().getAuthentication(); if (authentication != null) { Object principal = authentication.getPrincipal(); if (principal instanceof SysUserDetails) { - return (SysUserDetails) authentication.getPrincipal(); + return Optional.of((SysUserDetails) principal); } } - return null; + return Optional.empty(); } + /** * 获取用户ID * * @return Long */ public static Long getUserId() { - Long userId = Convert.toLong(getUser().getUserId()); - return userId; + return getUser().map(SysUserDetails::getUserId).orElse(null); } + + /** + * 获取用户账号 + * + * @return String 用户账号 + */ + public static String getUsername() { + return getUser().map(SysUserDetails::getUsername).orElse(null); + } + + /** * 获取部门ID * - * @return + * @return Long */ public static Long getDeptId() { - return Convert.toLong(getUser().getDeptId()); + return getUser().map(SysUserDetails::getDeptId).orElse(null); } /** * 获取数据权限范围 * - * @return DataScope + * @return Integer */ public static Integer getDataScope() { - return Convert.toInt(getUser().getDataScope()); + return getUser().map(SysUserDetails::getDataScope).orElse(null); } @@ -84,8 +100,6 @@ public class SecurityUtils { * 是否超级管理员 *

* 超级管理员忽视任何权限判断 - * - * @return */ public static boolean isRoot() { Set roles = getRoles(); diff --git a/src/main/java/com/youlai/system/service/impl/SysUserServiceImpl.java b/src/main/java/com/youlai/system/service/impl/SysUserServiceImpl.java index 6dd5be5c..7ffc4cad 100644 --- a/src/main/java/com/youlai/system/service/impl/SysUserServiceImpl.java +++ b/src/main/java/com/youlai/system/service/impl/SysUserServiceImpl.java @@ -228,7 +228,7 @@ public class SysUserServiceImpl extends ServiceImpl impl @Override public UserInfoVO getCurrentUserInfo() { - String username = SecurityUtils.getUser().getUsername(); // 登录用户名 + String username = SecurityUtils.getUsername(); // 获取登录用户基础信息 SysUser user = this.getOne(new LambdaQueryWrapper()