Files
peipei-backend/play-admin/src/main/java/com/starry/admin/utils/SecurityUtils.java
irving d719a047d8 style: 应用 Spotless 代码格式化
- 对所有 Java 源文件应用统一的代码格式化
- 统一缩进为 4 个空格
- 清理尾随空白字符和文件末尾换行
- 优化导入语句组织
- 总计格式化 654 个 Java 文件

有问题可以回滚或者找我聊
2025-08-30 21:21:08 -04:00

119 lines
3.1 KiB
Java

package com.starry.admin.utils;
import com.starry.admin.common.domain.LoginUser;
import com.starry.admin.common.security.entity.JwtUser;
import com.starry.admin.modules.system.module.entity.SysUserEntity;
import com.starry.common.context.CustomSecurityContextHolder;
import org.springframework.security.core.Authentication;
import org.springframework.security.core.context.SecurityContextHolder;
import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
/**
* 安全服务工具类
*
* @author admin
*/
public class SecurityUtils {
/**
* 用户ID
**/
public static String getUserId() {
try {
return getLoginUser().getUser().getUserId();
} catch (Exception e) {
throw new RuntimeException("获取用户ID异常");
}
}
/**
* 获取用户账户
**/
public static String getUsername() {
try {
return getLoginUser().getUsername();
} catch (Exception e) {
throw new RuntimeException("获取用户账户异常");
}
}
/**
* 获取用户
**/
public static JwtUser getOldLoginUser() {
try {
return (JwtUser) getAuthentication().getPrincipal();
} catch (Exception e) {
throw new RuntimeException("获取用户信息异常");
}
}
/**
* 获取用户
**/
public static LoginUser getLoginUser() {
try {
return (LoginUser) getAuthentication().getPrincipal();
} catch (Exception e) {
throw new RuntimeException("获取用户信息异常");
}
}
/**
* 获取Authentication
*/
public static Authentication getAuthentication() {
return SecurityContextHolder.getContext().getAuthentication();
}
/**
* 是否登录
**/
public static boolean isLogin() {
return getAuthentication() != null && getAuthentication().getPrincipal() != null;
}
public static boolean isAdmin(SysUserEntity user) {
return user.getSuperAdmin();
}
/**
* 生成BCryptPasswordEncoder密码
*
* @param password
* 密码
* @return 加密字符串
*/
public static String encryptPassword(String password) {
BCryptPasswordEncoder passwordEncoder = new BCryptPasswordEncoder();
return passwordEncoder.encode(password);
}
/**
* 判断密码是否相同
*
* @param rawPassword
* 真实密码
* @param encodedPassword
* 加密后字符
* @return 结果
*/
public static boolean matchesPassword(String rawPassword, String encodedPassword) {
BCryptPasswordEncoder passwordEncoder = new BCryptPasswordEncoder();
return passwordEncoder.matches(rawPassword, encodedPassword);
}
/**
* 获取租户ID
*/
public static String getTenantId() {
return CustomSecurityContextHolder.getTenantId();
}
/**
* 设置租户ID
*/
public static void setTenantId(String tenantId) {
CustomSecurityContextHolder.setTenantId(tenantId);
}
}