From 6e7c712456a8cf5693321edd2f3482aaf61d08b0 Mon Sep 17 00:00:00 2001 From: chenrui <1187576398@qq.com> Date: 星期二, 03 六月 2025 16:43:07 +0800 Subject: [PATCH] 登录修改 --- src/main/java/com/ruoyi/framework/security/service/UserDetailsServiceImpl.java | 24 +++++++++++++++++++++++- 1 files changed, 23 insertions(+), 1 deletions(-) diff --git a/src/main/java/com/ruoyi/framework/security/service/UserDetailsServiceImpl.java b/src/main/java/com/ruoyi/framework/security/service/UserDetailsServiceImpl.java index a5552b4..53cca34 100644 --- a/src/main/java/com/ruoyi/framework/security/service/UserDetailsServiceImpl.java +++ b/src/main/java/com/ruoyi/framework/security/service/UserDetailsServiceImpl.java @@ -1,8 +1,11 @@ package com.ruoyi.framework.security.service; +import com.ruoyi.project.system.mapper.SysDeptMapper; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.security.core.Authentication; +import org.springframework.security.core.context.SecurityContextHolder; import org.springframework.security.core.userdetails.UserDetails; import org.springframework.security.core.userdetails.UserDetailsService; import org.springframework.stereotype.Service; @@ -13,6 +16,8 @@ import com.ruoyi.framework.security.LoginUser; import com.ruoyi.project.system.domain.SysUser; import com.ruoyi.project.system.service.ISysUserService; + +import java.util.Map; /** * 鐢ㄦ埛楠岃瘉澶勭悊 @@ -33,6 +38,9 @@ @Autowired private SysPermissionService permissionService; + @Autowired + private SysDeptMapper deptMapper; + @Override public UserDetails loadUserByUsername(String username) { @@ -52,7 +60,21 @@ log.info("鐧诲綍鐢ㄦ埛锛歿} 宸茶鍋滅敤.", username); throw new ServiceException(MessageUtils.message("user.blocked")); } + Authentication authentication = SecurityContextHolder.getContext().getAuthentication(); + // 鑾峰彇 details + Object details = authentication.getDetails(); + Long factoryId = null; + if (details instanceof Map) { + factoryId = (Long) ((Map<?, ?>) details).get("factoryId"); + if(null != factoryId){ + // 鏌ヨ绉熸埛 + Long teantId = deptMapper.maxLevelDeptId(factoryId); + user.setCurrentDeptId(factoryId); + user.setTenantId(teantId.intValue()); + } + } + // 鑾峰彇鐢ㄦ埛褰撳墠鐧诲綍閮ㄩ棬锛屽苟鏌ヨ绉熸埛id passwordService.validate(user); return createLoginUser(user); @@ -60,6 +82,6 @@ public UserDetails createLoginUser(SysUser user) { - return new LoginUser(user.getUserId(), user.getDeptIds(), user, user.getTenantId(), permissionService.getMenuPermission(user)); + return new LoginUser(user.getUserId(), user.getDeptIds(), user, user.getTenantId(),user.getCurrentDeptId(), permissionService.getMenuPermission(user)); } } -- Gitblit v1.9.3