From 8506f4a55e528a406424391acf7d28ae636fce58 Mon Sep 17 00:00:00 2001 From: ingrun Date: Sat, 20 Dec 2025 12:19:54 +0800 Subject: [PATCH] =?UTF-8?q?=E6=A8=A1=E6=8B=9F=E5=85=B6=E4=BB=96=E7=94=A8?= =?UTF-8?q?=E6=88=B7=E7=99=BB=E5=BD=95=E6=88=96=E6=98=AF=E5=9C=A8=E5=AE=9A?= =?UTF-8?q?=E6=97=B6=E4=BB=BB=E5=8A=A1=E7=AD=89=E6=97=A0=E7=99=BB=E5=BD=95?= =?UTF-8?q?=E7=94=A8=E6=88=B7=E7=8E=AF=E5=A2=83=E4=B8=8B=E5=A1=AB=E5=85=85?= =?UTF-8?q?=E9=BB=98=E8=AE=A4=E7=94=A8=E6=88=B7=EF=BC=8C=E7=A1=AE=E4=BF=9D?= =?UTF-8?q?=E5=8F=AF=E6=AD=A3=E5=B8=B8=E8=8E=B7=E5=8F=96=E7=94=A8=E6=88=B7?= =?UTF-8?q?=E4=BF=A1=E6=81=AF=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/ruoyi/common/utils/SecurityUtils.java | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/utils/SecurityUtils.java b/ruoyi-common/src/main/java/com/ruoyi/common/utils/SecurityUtils.java index 3898cfadf..d23215bdd 100644 --- a/ruoyi-common/src/main/java/com/ruoyi/common/utils/SecurityUtils.java +++ b/ruoyi-common/src/main/java/com/ruoyi/common/utils/SecurityUtils.java @@ -3,7 +3,11 @@ package com.ruoyi.common.utils; import java.util.Collection; import java.util.List; import java.util.stream.Collectors; + +import com.ruoyi.common.core.domain.entity.SysUser; +import org.springframework.security.authentication.UsernamePasswordAuthenticationToken; import org.springframework.security.core.Authentication; +import org.springframework.security.core.context.SecurityContext; import org.springframework.security.core.context.SecurityContextHolder; import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder; import org.springframework.util.PatternMatchUtils; @@ -175,4 +179,16 @@ public class SecurityUtils .anyMatch(x -> Constants.SUPER_ADMIN.equals(x) || PatternMatchUtils.simpleMatch(x, role)); } + /** + * 委派用户 + * 模拟其他用户登录或是在定时任务等无登录用户环境下填充默认用户,确保可正常获取用户信息。 + */ + public static void delegatingUser(SysUser user) { + SecurityContext context = SecurityContextHolder.createEmptyContext(); + LoginUser loginUser = new LoginUser(); + loginUser.setUser(user); + context.setAuthentication(new UsernamePasswordAuthenticationToken(loginUser, null)); + SecurityContextHolder.setContext(context); + } + }